added wistful wanderings, nightmare reowork, lucid bolt, etc
This commit is contained in:
1 parent
68a823d5ff
commit
b81dcc3bef
76 files changed
+1916
-330
No files matched your search
+23
@@ -0,0 +1,23 @@
|
|||||||
|
package com.craisinlord.antarchy.content.client.model;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
|
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
|
public class LucidBoltModel extends GeoModel<LucidBoltEntity> {
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getModelResource(LucidBoltEntity animatable) {
|
||||||
|
return new ResourceLocation(Antarchy.MODID, "geo/lucid_bolt.geo.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTextureResource(LucidBoltEntity animatable) {
|
||||||
|
return new ResourceLocation(Antarchy.MODID, "textures/vfx/lucid_bolt.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getAnimationResource(LucidBoltEntity animatable) {
|
||||||
|
return new ResourceLocation(Antarchy.MODID, "animations/lucid_bolt.animation.json");
|
||||||
|
}
|
||||||
|
}
|
||||||
+75
@@ -0,0 +1,75 @@
|
|||||||
|
package com.craisinlord.antarchy.content.client.particle;
|
||||||
|
|
||||||
|
import net.minecraft.client.multiplayer.ClientLevel;
|
||||||
|
import net.minecraft.client.particle.Particle;
|
||||||
|
import net.minecraft.client.particle.ParticleProvider;
|
||||||
|
import net.minecraft.client.particle.ParticleRenderType;
|
||||||
|
import net.minecraft.client.particle.SpriteSet;
|
||||||
|
import net.minecraft.client.particle.TextureSheetParticle;
|
||||||
|
import net.minecraft.client.renderer.LightTexture;
|
||||||
|
import net.minecraft.core.particles.SimpleParticleType;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
|
||||||
|
public final class LucidBoltImpactParticle extends TextureSheetParticle {
|
||||||
|
private final SpriteSet sprites;
|
||||||
|
|
||||||
|
private LucidBoltImpactParticle(ClientLevel level, double x, double y, double z, double xd, double yd, double zd, SpriteSet sprites, float baseScale, int minLifetime, int randomLifetime) {
|
||||||
|
super(level, x, y, z, xd, yd, zd);
|
||||||
|
this.sprites = sprites;
|
||||||
|
this.friction = 0.88F;
|
||||||
|
this.gravity = 0.0F;
|
||||||
|
this.hasPhysics = false;
|
||||||
|
this.xd = xd;
|
||||||
|
this.yd = yd;
|
||||||
|
this.zd = zd;
|
||||||
|
this.quadSize = baseScale * (0.85F + this.random.nextFloat() * 0.3F);
|
||||||
|
this.lifetime = minLifetime + this.random.nextInt(randomLifetime);
|
||||||
|
this.setColor(0.94F, 0.95F, 1.0F);
|
||||||
|
this.setAlpha(0.95F);
|
||||||
|
this.pickSprite(sprites);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick() {
|
||||||
|
super.tick();
|
||||||
|
this.pickSprite(this.sprites);
|
||||||
|
float life = (float) this.age / (float) this.lifetime;
|
||||||
|
this.setAlpha(Mth.clamp(1.0F - life, 0.0F, 1.0F) * 0.95F);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLightColor(float partialTick) {
|
||||||
|
return LightTexture.FULL_BRIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ParticleRenderType getRenderType() {
|
||||||
|
return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class SmallProvider implements ParticleProvider<SimpleParticleType> {
|
||||||
|
private final SpriteSet sprites;
|
||||||
|
|
||||||
|
public SmallProvider(SpriteSet sprites) {
|
||||||
|
this.sprites = sprites;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xd, double yd, double zd) {
|
||||||
|
return new LucidBoltImpactParticle(level, x, y, z, xd, yd, zd, this.sprites, 0.1F, 8, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class LargeProvider implements ParticleProvider<SimpleParticleType> {
|
||||||
|
private final SpriteSet sprites;
|
||||||
|
|
||||||
|
public LargeProvider(SpriteSet sprites) {
|
||||||
|
this.sprites = sprites;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Particle createParticle(SimpleParticleType type, ClientLevel level, double x, double y, double z, double xd, double yd, double zd) {
|
||||||
|
return new LucidBoltImpactParticle(level, x, y, z, xd, yd, zd, this.sprites, 0.22F, 10, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
package com.craisinlord.antarchy.content.client.renderer;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.content.client.model.LucidBoltModel;
|
||||||
|
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
import com.mojang.math.Axis;
|
||||||
|
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||||
|
|
||||||
|
public class LucidBoltRenderer extends GeoEntityRenderer<LucidBoltEntity> {
|
||||||
|
public LucidBoltRenderer(EntityRendererProvider.Context context) {
|
||||||
|
super(context, new LucidBoltModel());
|
||||||
|
this.shadowRadius = 0.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void applyRotations(LucidBoltEntity animatable, PoseStack poseStack, float ageInTicks, float rotationYaw, float partialTick) {
|
||||||
|
float appliedYaw = Mth.rotLerp(partialTick, animatable.yRotO, animatable.getYRot());
|
||||||
|
float appliedPitch = Mth.lerp(partialTick, animatable.xRotO, animatable.getXRot());
|
||||||
|
super.applyRotations(animatable, poseStack, ageInTicks, appliedYaw, partialTick);
|
||||||
|
poseStack.mulPose(Axis.XP.rotationDegrees(-appliedPitch));
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
"antarchy:lucid_bolt_impact_large"
|
||||||
|
]
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
"antarchy:lucid_bolt_impact_small"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -68,9 +68,9 @@ public final class AntarchySettings {
|
|||||||
private static boolean krakensGraspInnateLoyalty = true;
|
private static boolean krakensGraspInnateLoyalty = true;
|
||||||
private static int krakensGraspInnateLoyaltyLevel = 3;
|
private static int krakensGraspInnateLoyaltyLevel = 3;
|
||||||
private static int krakensGraspTentacleDurationTicks = 100;
|
private static int krakensGraspTentacleDurationTicks = 100;
|
||||||
private static double krakensGraspTentacleDamage = 3.0D;
|
|
||||||
private static double krakensGraspTentacleRadius = 3.0D;
|
private static double krakensGraspTentacleRadius = 3.0D;
|
||||||
private static int krakensGraspTentacleDamageIntervalTicks = 20;
|
private static int krakensGraspTentacleSlownessAmplifier = 8;
|
||||||
|
private static int krakensGraspTentacleSlownessRefreshTicks = 5;
|
||||||
private static double scorpionWhipBaseDamage = 10.0D;
|
private static double scorpionWhipBaseDamage = 10.0D;
|
||||||
private static double scorpionWhipReachBonus = 5.0D;
|
private static double scorpionWhipReachBonus = 5.0D;
|
||||||
private static int scorpionWhipPoisonDurationTicks = 100;
|
private static int scorpionWhipPoisonDurationTicks = 100;
|
||||||
@@ -87,6 +87,8 @@ public final class AntarchySettings {
|
|||||||
private static double bigBerthaBasiliskCooldownSeconds = 7.0D;
|
private static double bigBerthaBasiliskCooldownSeconds = 7.0D;
|
||||||
private static double bigBerthaLucidInvertedDurationSeconds = 3.0D;
|
private static double bigBerthaLucidInvertedDurationSeconds = 3.0D;
|
||||||
private static double bigBerthaLucidInvertedDamageBonusPercent = 25.0D;
|
private static double bigBerthaLucidInvertedDamageBonusPercent = 25.0D;
|
||||||
|
private static double bigBerthaNoneModeDamageBonusPercent = 15.0D;
|
||||||
|
private static double bigBerthaNightmareDamageBonusPercent = 30.0D;
|
||||||
private static double potentNyxiteInvertedDurationSeconds = 60.0D;
|
private static double potentNyxiteInvertedDurationSeconds = 60.0D;
|
||||||
private static int ultimateToolEnchantability = 25;
|
private static int ultimateToolEnchantability = 25;
|
||||||
private static int ultimateArmorEnchantability = 10;
|
private static int ultimateArmorEnchantability = 10;
|
||||||
@@ -288,6 +290,8 @@ public final class AntarchySettings {
|
|||||||
private static int emperorScorpionMaxSummonedScorpions = 4;
|
private static int emperorScorpionMaxSummonedScorpions = 4;
|
||||||
private static int emperorScorpionMaxNearbyScorpions = 3;
|
private static int emperorScorpionMaxNearbyScorpions = 3;
|
||||||
private static int emperorScorpionHardenCooldownTicks = 2400;
|
private static int emperorScorpionHardenCooldownTicks = 2400;
|
||||||
|
private static double emperorScorpionDamageRange = 80.0D;
|
||||||
|
private static int emperorScorpionMinDespawnTicks = 6000;
|
||||||
private static double scorpionHealth = 30.0D;
|
private static double scorpionHealth = 30.0D;
|
||||||
private static double scorpionAttackDamage = 5.0D;
|
private static double scorpionAttackDamage = 5.0D;
|
||||||
private static double scorpionMovementSpeed = 0.29D;
|
private static double scorpionMovementSpeed = 0.29D;
|
||||||
@@ -317,6 +321,12 @@ public final class AntarchySettings {
|
|||||||
private static double krakenArmor = 8.0D;
|
private static double krakenArmor = 8.0D;
|
||||||
private static double krakenProjectileDamageTakenMultiplier = 0.5D;
|
private static double krakenProjectileDamageTakenMultiplier = 0.5D;
|
||||||
private static double krakenBossBarRange = 40.0D;
|
private static double krakenBossBarRange = 40.0D;
|
||||||
|
private static double krakenFollowRange = 96.0D;
|
||||||
|
private static double krakenDamageRange = 96.0D;
|
||||||
|
private static double herculesBeetleDamageRange = 48.0D;
|
||||||
|
private static double toreterrorDamageRange = 48.0D;
|
||||||
|
private static double brutalflyDamageRange = 48.0D;
|
||||||
|
private static double alphaMantisDamageRange = 48.0D;
|
||||||
private static float krakenLightningDamagePhaseOne = 6.0F;
|
private static float krakenLightningDamagePhaseOne = 6.0F;
|
||||||
private static double lucidHealth = 30.0D;
|
private static double lucidHealth = 30.0D;
|
||||||
private static double lucidAttackDamage = 4.0D;
|
private static double lucidAttackDamage = 4.0D;
|
||||||
@@ -662,6 +672,14 @@ public final class AntarchySettings {
|
|||||||
return bigBerthaLucidInvertedDamageBonusPercent;
|
return bigBerthaLucidInvertedDamageBonusPercent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double bigBerthaNoneModeDamageBonusPercent() {
|
||||||
|
return bigBerthaNoneModeDamageBonusPercent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double bigBerthaNightmareDamageBonusPercent() {
|
||||||
|
return bigBerthaNightmareDamageBonusPercent;
|
||||||
|
}
|
||||||
|
|
||||||
public static double potentNyxiteInvertedDurationSeconds() {
|
public static double potentNyxiteInvertedDurationSeconds() {
|
||||||
return potentNyxiteInvertedDurationSeconds;
|
return potentNyxiteInvertedDurationSeconds;
|
||||||
}
|
}
|
||||||
@@ -756,9 +774,9 @@ public final class AntarchySettings {
|
|||||||
public static boolean krakensGraspInnateLoyalty() { return krakensGraspInnateLoyalty; }
|
public static boolean krakensGraspInnateLoyalty() { return krakensGraspInnateLoyalty; }
|
||||||
public static int krakensGraspInnateLoyaltyLevel() { return krakensGraspInnateLoyaltyLevel; }
|
public static int krakensGraspInnateLoyaltyLevel() { return krakensGraspInnateLoyaltyLevel; }
|
||||||
public static int krakensGraspTentacleDurationTicks() { return krakensGraspTentacleDurationTicks; }
|
public static int krakensGraspTentacleDurationTicks() { return krakensGraspTentacleDurationTicks; }
|
||||||
public static double krakensGraspTentacleDamage() { return krakensGraspTentacleDamage; }
|
|
||||||
public static double krakensGraspTentacleRadius() { return krakensGraspTentacleRadius; }
|
public static double krakensGraspTentacleRadius() { return krakensGraspTentacleRadius; }
|
||||||
public static int krakensGraspTentacleDamageIntervalTicks() { return krakensGraspTentacleDamageIntervalTicks; }
|
public static int krakensGraspTentacleSlownessAmplifier() { return krakensGraspTentacleSlownessAmplifier; }
|
||||||
|
public static int krakensGraspTentacleSlownessRefreshTicks() { return krakensGraspTentacleSlownessRefreshTicks; }
|
||||||
|
|
||||||
public static double octopusBombHealth() {
|
public static double octopusBombHealth() {
|
||||||
return octopusBombHealth;
|
return octopusBombHealth;
|
||||||
@@ -1255,6 +1273,14 @@ public final class AntarchySettings {
|
|||||||
bigBerthaLucidInvertedDamageBonusPercent = value;
|
bigBerthaLucidInvertedDamageBonusPercent = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setBigBerthaNoneModeDamageBonusPercent(double value) {
|
||||||
|
bigBerthaNoneModeDamageBonusPercent = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setBigBerthaNightmareDamageBonusPercent(double value) {
|
||||||
|
bigBerthaNightmareDamageBonusPercent = value;
|
||||||
|
}
|
||||||
|
|
||||||
public static void setPotentNyxiteInvertedDurationSeconds(double value) {
|
public static void setPotentNyxiteInvertedDurationSeconds(double value) {
|
||||||
potentNyxiteInvertedDurationSeconds = value;
|
potentNyxiteInvertedDurationSeconds = value;
|
||||||
}
|
}
|
||||||
@@ -1350,9 +1376,9 @@ public final class AntarchySettings {
|
|||||||
public static void setKrakensGraspInnateLoyalty(boolean value) { krakensGraspInnateLoyalty = value; }
|
public static void setKrakensGraspInnateLoyalty(boolean value) { krakensGraspInnateLoyalty = value; }
|
||||||
public static void setKrakensGraspInnateLoyaltyLevel(int value) { krakensGraspInnateLoyaltyLevel = value; }
|
public static void setKrakensGraspInnateLoyaltyLevel(int value) { krakensGraspInnateLoyaltyLevel = value; }
|
||||||
public static void setKrakensGraspTentacleDurationTicks(int value) { krakensGraspTentacleDurationTicks = value; }
|
public static void setKrakensGraspTentacleDurationTicks(int value) { krakensGraspTentacleDurationTicks = value; }
|
||||||
public static void setKrakensGraspTentacleDamage(double value) { krakensGraspTentacleDamage = value; }
|
|
||||||
public static void setKrakensGraspTentacleRadius(double value) { krakensGraspTentacleRadius = value; }
|
public static void setKrakensGraspTentacleRadius(double value) { krakensGraspTentacleRadius = value; }
|
||||||
public static void setKrakensGraspTentacleDamageIntervalTicks(int value) { krakensGraspTentacleDamageIntervalTicks = value; }
|
public static void setKrakensGraspTentacleSlownessAmplifier(int value) { krakensGraspTentacleSlownessAmplifier = value; }
|
||||||
|
public static void setKrakensGraspTentacleSlownessRefreshTicks(int value) { krakensGraspTentacleSlownessRefreshTicks = value; }
|
||||||
|
|
||||||
public static void setBrutalflyHealth(double value) {
|
public static void setBrutalflyHealth(double value) {
|
||||||
brutalflyHealth = value;
|
brutalflyHealth = value;
|
||||||
@@ -2057,6 +2083,12 @@ public final class AntarchySettings {
|
|||||||
public static int emperorScorpionHardenCooldownTicks() { return emperorScorpionHardenCooldownTicks; }
|
public static int emperorScorpionHardenCooldownTicks() { return emperorScorpionHardenCooldownTicks; }
|
||||||
public static void setEmperorScorpionHardenCooldownTicks(int value) { emperorScorpionHardenCooldownTicks = value; }
|
public static void setEmperorScorpionHardenCooldownTicks(int value) { emperorScorpionHardenCooldownTicks = value; }
|
||||||
|
|
||||||
|
public static double emperorScorpionDamageRange() { return emperorScorpionDamageRange; }
|
||||||
|
public static void setEmperorScorpionDamageRange(double value) { emperorScorpionDamageRange = value; }
|
||||||
|
|
||||||
|
public static int emperorScorpionMinDespawnTicks() { return emperorScorpionMinDespawnTicks; }
|
||||||
|
public static void setEmperorScorpionMinDespawnTicks(int value) { emperorScorpionMinDespawnTicks = value; }
|
||||||
|
|
||||||
public static double scorpionHealth() { return scorpionHealth; }
|
public static double scorpionHealth() { return scorpionHealth; }
|
||||||
public static void setScorpionHealth(double value) { scorpionHealth = value; }
|
public static void setScorpionHealth(double value) { scorpionHealth = value; }
|
||||||
|
|
||||||
@@ -2142,6 +2174,24 @@ public final class AntarchySettings {
|
|||||||
public static double krakenBossBarRange() { return krakenBossBarRange; }
|
public static double krakenBossBarRange() { return krakenBossBarRange; }
|
||||||
public static void setKrakenBossBarRange(double value) { krakenBossBarRange = value; }
|
public static void setKrakenBossBarRange(double value) { krakenBossBarRange = value; }
|
||||||
|
|
||||||
|
public static double krakenFollowRange() { return krakenFollowRange; }
|
||||||
|
public static void setKrakenFollowRange(double value) { krakenFollowRange = value; }
|
||||||
|
|
||||||
|
public static double krakenDamageRange() { return krakenDamageRange; }
|
||||||
|
public static void setKrakenDamageRange(double value) { krakenDamageRange = value; }
|
||||||
|
|
||||||
|
public static double herculesBeetleDamageRange() { return herculesBeetleDamageRange; }
|
||||||
|
public static void setHerculesBeetleDamageRange(double value) { herculesBeetleDamageRange = value; }
|
||||||
|
|
||||||
|
public static double toreterrorDamageRange() { return toreterrorDamageRange; }
|
||||||
|
public static void setToreterrorDamageRange(double value) { toreterrorDamageRange = value; }
|
||||||
|
|
||||||
|
public static double brutalflyDamageRange() { return brutalflyDamageRange; }
|
||||||
|
public static void setBrutalflyDamageRange(double value) { brutalflyDamageRange = value; }
|
||||||
|
|
||||||
|
public static double alphaMantisDamageRange() { return alphaMantisDamageRange; }
|
||||||
|
public static void setAlphaMantisDamageRange(double value) { alphaMantisDamageRange = value; }
|
||||||
|
|
||||||
public static float krakenLightningDamagePhaseOne() { return krakenLightningDamagePhaseOne; }
|
public static float krakenLightningDamagePhaseOne() { return krakenLightningDamagePhaseOne; }
|
||||||
public static void setKrakenLightningDamagePhaseOne(float value) { krakenLightningDamagePhaseOne = value; }
|
public static void setKrakenLightningDamagePhaseOne(float value) { krakenLightningDamagePhaseOne = value; }
|
||||||
|
|
||||||
|
|||||||
@@ -335,6 +335,10 @@ public final class AntarchyObjects {
|
|||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static Supplier<SimpleParticleType> LOTUS_POLLEN = (Supplier<SimpleParticleType>) UNBOUND;
|
public static Supplier<SimpleParticleType> LOTUS_POLLEN = (Supplier<SimpleParticleType>) UNBOUND;
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
public static Supplier<SimpleParticleType> LUCID_BOLT_IMPACT_SMALL = (Supplier<SimpleParticleType>) UNBOUND;
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public static Supplier<SimpleParticleType> LUCID_BOLT_IMPACT_LARGE = (Supplier<SimpleParticleType>) UNBOUND;
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public static Supplier<net.minecraft.core.component.DataComponentType<net.minecraft.util.Unit>> AMERICAN_COMPONENT =
|
public static Supplier<net.minecraft.core.component.DataComponentType<net.minecraft.util.Unit>> AMERICAN_COMPONENT =
|
||||||
(Supplier<net.minecraft.core.component.DataComponentType<net.minecraft.util.Unit>>) UNBOUND;
|
(Supplier<net.minecraft.core.component.DataComponentType<net.minecraft.util.Unit>>) UNBOUND;
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@@ -697,6 +701,14 @@ public final class AntarchyObjects {
|
|||||||
LOTUS_POLLEN = supplier;
|
LOTUS_POLLEN = supplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void setLucidBoltImpactSmall(Supplier<SimpleParticleType> supplier) {
|
||||||
|
LUCID_BOLT_IMPACT_SMALL = supplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setLucidBoltImpactLarge(Supplier<SimpleParticleType> supplier) {
|
||||||
|
LUCID_BOLT_IMPACT_LARGE = supplier;
|
||||||
|
}
|
||||||
|
|
||||||
public static void setPeachLeavesParticle(Supplier<SimpleParticleType> supplier) {
|
public static void setPeachLeavesParticle(Supplier<SimpleParticleType> supplier) {
|
||||||
PEACH_LEAVES_PARTICLE = supplier;
|
PEACH_LEAVES_PARTICLE = supplier;
|
||||||
}
|
}
|
||||||
|
|||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
package com.craisinlord.antarchy.content.client.model;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
|
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
|
public class LucidBoltModel extends GeoModel<LucidBoltEntity> {
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getModelResource(LucidBoltEntity animatable) {
|
||||||
|
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/lucid_bolt.geo.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTextureResource(LucidBoltEntity animatable) {
|
||||||
|
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/vfx/lucid_bolt.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getAnimationResource(LucidBoltEntity animatable) {
|
||||||
|
return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/lucid_bolt.animation.json");
|
||||||
|
}
|
||||||
|
}
|
||||||
+11
-131
@@ -1,144 +1,24 @@
|
|||||||
package com.craisinlord.antarchy.content.client.renderer;
|
package com.craisinlord.antarchy.content.client.renderer;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.content.client.model.LucidBoltModel;
|
||||||
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
|
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.math.Axis;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
|
||||||
import net.minecraft.client.renderer.RenderType;
|
|
||||||
import net.minecraft.client.renderer.entity.EntityRenderer;
|
|
||||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
|
||||||
import net.minecraft.core.BlockPos;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
||||||
import org.joml.Matrix4f;
|
|
||||||
|
|
||||||
public class LucidBoltRenderer extends EntityRenderer<LucidBoltEntity> {
|
|
||||||
private static final ResourceLocation BEAM_TEXTURE = ResourceLocation.withDefaultNamespace("textures/entity/beacon_beam.png");
|
|
||||||
private static final Vec3 WORLD_UP = new Vec3(0.0D, 1.0D, 0.0D);
|
|
||||||
private static final Vec3 WORLD_RIGHT = new Vec3(1.0D, 0.0D, 0.0D);
|
|
||||||
private static final Vec3 WORLD_FORWARD = new Vec3(0.0D, 0.0D, 1.0D);
|
|
||||||
|
|
||||||
|
public class LucidBoltRenderer extends GeoEntityRenderer<LucidBoltEntity> {
|
||||||
public LucidBoltRenderer(EntityRendererProvider.Context context) {
|
public LucidBoltRenderer(EntityRendererProvider.Context context) {
|
||||||
super(context);
|
super(context, new LucidBoltModel());
|
||||||
|
this.shadowRadius = 0.0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getBlockLightLevel(LucidBoltEntity entity, BlockPos pos) {
|
protected void applyRotations(LucidBoltEntity animatable, PoseStack poseStack, float ageInTicks, float rotationYaw, float partialTick, float nativeScale) {
|
||||||
return 15;
|
float appliedYaw = Mth.rotLerp(partialTick, animatable.yRotO, animatable.getYRot());
|
||||||
}
|
float appliedPitch = Mth.lerp(partialTick, animatable.xRotO, animatable.getXRot());
|
||||||
|
poseStack.mulPose(Axis.YP.rotationDegrees(180.0F - appliedYaw));
|
||||||
@Override
|
poseStack.mulPose(Axis.XP.rotationDegrees(-appliedPitch));
|
||||||
public void render(LucidBoltEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource buffer, int packedLight) {
|
|
||||||
poseStack.pushPose();
|
|
||||||
|
|
||||||
Vec3 forward = getRenderDirection(entity, partialTick);
|
|
||||||
Vec3 right = createPerpendicular(forward, WORLD_UP);
|
|
||||||
Vec3 up = forward.cross(right);
|
|
||||||
if (up.lengthSqr() < 1.0E-6D) {
|
|
||||||
up = WORLD_UP;
|
|
||||||
} else {
|
|
||||||
up = up.normalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
float pulse = 0.85F + 0.15F * Mth.sin((entity.tickCount + partialTick) * 0.55F);
|
|
||||||
float alpha = 0.92F * pulse;
|
|
||||||
Vec3 delta = entity.getDeltaMovement();
|
|
||||||
float length = (float) Mth.clamp(delta.length() * 2.3D + 0.95D, 0.9D, 2.5D);
|
|
||||||
|
|
||||||
VertexConsumer vertexConsumer = buffer.getBuffer(RenderType.entityTranslucent(BEAM_TEXTURE));
|
|
||||||
PoseStack.Pose pose = poseStack.last();
|
|
||||||
|
|
||||||
renderBeamRibbon(pose, vertexConsumer, packedLight, 1.0F, 0.18F, 0.08F, alpha, 0.13F, forward, right, length);
|
|
||||||
renderBeamRibbon(pose, vertexConsumer, packedLight, 1.0F, 0.48F, 0.18F, alpha * 0.58F, 0.24F, forward, up, length);
|
|
||||||
|
|
||||||
poseStack.popPose();
|
|
||||||
super.render(entity, entityYaw, partialTick, poseStack, buffer, packedLight);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Vec3 getRenderDirection(LucidBoltEntity entity, float partialTick) {
|
|
||||||
Vec3 delta = entity.getDeltaMovement();
|
|
||||||
if (delta.lengthSqr() > 1.0E-6D) {
|
|
||||||
return delta.normalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
float yaw = Mth.rotLerp(partialTick, entity.yRotO, entity.getYRot()) * ((float) Math.PI / 180.0F);
|
|
||||||
float pitch = Mth.lerp(partialTick, entity.xRotO, entity.getXRot()) * ((float) Math.PI / 180.0F);
|
|
||||||
float cosPitch = Mth.cos(pitch);
|
|
||||||
Vec3 direction = new Vec3(
|
|
||||||
-Mth.sin(yaw) * cosPitch,
|
|
||||||
-Mth.sin(pitch),
|
|
||||||
Mth.cos(yaw) * cosPitch
|
|
||||||
);
|
|
||||||
return direction.lengthSqr() > 1.0E-6D ? direction.normalize() : WORLD_FORWARD;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Vec3 createPerpendicular(Vec3 forward, Vec3 preferredAxis) {
|
|
||||||
Vec3 perpendicular = forward.cross(preferredAxis);
|
|
||||||
if (perpendicular.lengthSqr() < 1.0E-6D) {
|
|
||||||
perpendicular = forward.cross(WORLD_RIGHT);
|
|
||||||
}
|
|
||||||
if (perpendicular.lengthSqr() < 1.0E-6D) {
|
|
||||||
perpendicular = WORLD_UP;
|
|
||||||
}
|
|
||||||
return perpendicular.normalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void renderBeamRibbon(
|
|
||||||
PoseStack.Pose pose,
|
|
||||||
VertexConsumer vertexConsumer,
|
|
||||||
int packedLight,
|
|
||||||
float red,
|
|
||||||
float green,
|
|
||||||
float blue,
|
|
||||||
float alpha,
|
|
||||||
float halfWidth,
|
|
||||||
Vec3 forward,
|
|
||||||
Vec3 sideways,
|
|
||||||
float length
|
|
||||||
) {
|
|
||||||
Matrix4f matrix4f = pose.pose();
|
|
||||||
Vec3 offset = sideways.scale(halfWidth);
|
|
||||||
Vec3 end = forward.scale(length);
|
|
||||||
Vec3 normal = sideways.cross(forward);
|
|
||||||
if (normal.lengthSqr() < 1.0E-6D) {
|
|
||||||
normal = WORLD_UP;
|
|
||||||
} else {
|
|
||||||
normal = normal.normalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
emitVertex(vertexConsumer, pose, matrix4f, offset.scale(-1.0D), red, green, blue, alpha, 0.0F, 0.0F, normal, packedLight);
|
|
||||||
emitVertex(vertexConsumer, pose, matrix4f, offset, red, green, blue, alpha, 1.0F, 0.0F, normal, packedLight);
|
|
||||||
emitVertex(vertexConsumer, pose, matrix4f, end.add(offset), red, green, blue, alpha, 1.0F, 1.0F, normal, packedLight);
|
|
||||||
emitVertex(vertexConsumer, pose, matrix4f, end.add(offset.scale(-1.0D)), red, green, blue, alpha, 0.0F, 1.0F, normal, packedLight);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void emitVertex(
|
|
||||||
VertexConsumer vertexConsumer,
|
|
||||||
PoseStack.Pose pose,
|
|
||||||
Matrix4f matrix4f,
|
|
||||||
Vec3 position,
|
|
||||||
float red,
|
|
||||||
float green,
|
|
||||||
float blue,
|
|
||||||
float alpha,
|
|
||||||
float u,
|
|
||||||
float v,
|
|
||||||
Vec3 normal,
|
|
||||||
int packedLight
|
|
||||||
) {
|
|
||||||
vertexConsumer
|
|
||||||
.addVertex(matrix4f, (float) position.x, (float) position.y, (float) position.z)
|
|
||||||
.setColor(red, green, blue, alpha)
|
|
||||||
.setUv(u, v)
|
|
||||||
.setOverlay(OverlayTexture.NO_OVERLAY)
|
|
||||||
.setLight(packedLight)
|
|
||||||
.setNormal(pose, (float) normal.x, (float) normal.y, (float) normal.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceLocation getTextureLocation(LucidBoltEntity entity) {
|
|
||||||
return BEAM_TEXTURE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+27
@@ -1,10 +1,37 @@
|
|||||||
package com.craisinlord.antarchy.content.effect;
|
package com.craisinlord.antarchy.content.effect;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
|
import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.effect.MobEffect;
|
import net.minecraft.world.effect.MobEffect;
|
||||||
import net.minecraft.world.effect.MobEffectCategory;
|
import net.minecraft.world.effect.MobEffectCategory;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
public final class DreadMobEffect extends MobEffect {
|
public final class DreadMobEffect extends MobEffect {
|
||||||
public DreadMobEffect() {
|
public DreadMobEffect() {
|
||||||
super(MobEffectCategory.HARMFUL, 0x1A0A1A);
|
super(MobEffectCategory.HARMFUL, 0x1A0A1A);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean applyEffectTick(LivingEntity entity, int amplifier) {
|
||||||
|
if (AntarchySettings.dreadHallucinationMobsEnabled()
|
||||||
|
&& entity instanceof Player player
|
||||||
|
&& entity.level() instanceof ServerLevel serverLevel) {
|
||||||
|
int minTicks = Math.max(1, (int) Math.round(AntarchySettings.dreadHallucinationMobMinInterval() * 20.0D));
|
||||||
|
int maxTicks = Math.max(minTicks, (int) Math.round(AntarchySettings.dreadHallucinationMobMaxInterval() * 20.0D));
|
||||||
|
int averageTicks = (minTicks + maxTicks) / 2;
|
||||||
|
if (player.getRandom().nextInt(averageTicks) == 0) {
|
||||||
|
Vec3 spawnPos = player.position().add(0.0D, player.getBbHeight() * 0.6D, 0.0D);
|
||||||
|
NightmareBiteEntity.spawnAt(serverLevel, spawnPos, player.getYRot(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldApplyEffectTickThisTick(int duration, int amplifier) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+15
@@ -3,6 +3,7 @@ package com.craisinlord.antarchy.content.entity;
|
|||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||||
|
import com.craisinlord.antarchy.content.boss.BossCombatUtil;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
@@ -12,6 +13,7 @@ import net.minecraft.server.level.ServerPlayer;
|
|||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.BossEvent;
|
import net.minecraft.world.BossEvent;
|
||||||
import net.minecraft.world.Difficulty;
|
import net.minecraft.world.Difficulty;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
@@ -51,6 +53,19 @@ public class AlphaMantisEntity extends MantisEntity {
|
|||||||
.add(Attributes.KNOCKBACK_RESISTANCE, 0.8D);
|
.add(Attributes.KNOCKBACK_RESISTANCE, 0.8D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
|
if (super.isInvulnerableTo(source)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return BossCombatUtil.isOutOfDamageRange(this, AntarchySettings.alphaMantisDamageRange());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hurt(DamageSource source, float amount) {
|
||||||
|
return super.hurt(source, BossCombatUtil.capSingleHitAtHalfHealth(this, amount));
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean checkAlphaMantisSpawnRules(EntityType<AlphaMantisEntity> entityType, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
|
public static boolean checkAlphaMantisSpawnRules(EntityType<AlphaMantisEntity> entityType, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
|
||||||
if (spawnReason == MobSpawnType.SPAWN_EGG
|
if (spawnReason == MobSpawnType.SPAWN_EGG
|
||||||
|| spawnReason == MobSpawnType.SPAWNER
|
|| spawnReason == MobSpawnType.SPAWNER
|
||||||
|
|||||||
+24
-2
@@ -4,6 +4,7 @@ import com.craisinlord.antarchy.Antarchy;
|
|||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
|
import com.craisinlord.antarchy.content.boss.BossCombatUtil;
|
||||||
import com.craisinlord.antarchy.content.damage.AntarchyDamageSources;
|
import com.craisinlord.antarchy.content.damage.AntarchyDamageSources;
|
||||||
import com.craisinlord.antarchy.content.entity.ScorpionEntity;
|
import com.craisinlord.antarchy.content.entity.ScorpionEntity;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
@@ -142,6 +143,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
@Nullable private BlockPos encounterHome;
|
@Nullable private BlockPos encounterHome;
|
||||||
@Nullable private LivingEntity attackTarget;
|
@Nullable private LivingEntity attackTarget;
|
||||||
private final Set<UUID> summonedScorpionIds = new HashSet<>();
|
private final Set<UUID> summonedScorpionIds = new HashSet<>();
|
||||||
|
private boolean hasTakenDamage;
|
||||||
|
|
||||||
public EmperorScorpionEntity(EntityType<? extends EmperorScorpionEntity> entityType, Level level) {
|
public EmperorScorpionEntity(EntityType<? extends EmperorScorpionEntity> entityType, Level level) {
|
||||||
super(entityType, level);
|
super(entityType, level);
|
||||||
@@ -195,12 +197,28 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
if (this.isHardenedStateActive()) {
|
if (this.isHardenedStateActive()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return super.hurt(source, amount);
|
amount = BossCombatUtil.capSingleHitAtHalfHealth(this, amount);
|
||||||
|
boolean hurt = super.hurt(source, amount);
|
||||||
|
if (hurt) {
|
||||||
|
this.hasTakenDamage = true;
|
||||||
|
}
|
||||||
|
return hurt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInvulnerableTo(DamageSource source) {
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
return this.isHardenedStateActive() || super.isInvulnerableTo(source);
|
if (this.isHardenedStateActive() || super.isInvulnerableTo(source)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return BossCombatUtil.isOutOfDamageRange(this, AntarchySettings.emperorScorpionDamageRange());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removeWhenFarAway(double distanceToClosestPlayer) {
|
||||||
|
if (this.hasTakenDamage || this.tickCount < AntarchySettings.emperorScorpionMinDespawnTicks()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return super.removeWhenFarAway(distanceToClosestPlayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -684,6 +702,7 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
tag.putInt("HardenDurationTicks", this.hardenDurationTicks);
|
tag.putInt("HardenDurationTicks", this.hardenDurationTicks);
|
||||||
tag.putInt("HardenHealTicks", this.hardenHealTicks);
|
tag.putInt("HardenHealTicks", this.hardenHealTicks);
|
||||||
tag.putInt("HardenSummonedScorpions", this.hardenSummonedScorpions);
|
tag.putInt("HardenSummonedScorpions", this.hardenSummonedScorpions);
|
||||||
|
tag.putBoolean("HasTakenDamage", this.hasTakenDamage);
|
||||||
if (this.encounterHome != null) {
|
if (this.encounterHome != null) {
|
||||||
tag.putInt("EncounterHomeX", this.encounterHome.getX());
|
tag.putInt("EncounterHomeX", this.encounterHome.getX());
|
||||||
tag.putInt("EncounterHomeY", this.encounterHome.getY());
|
tag.putInt("EncounterHomeY", this.encounterHome.getY());
|
||||||
@@ -720,6 +739,9 @@ public class EmperorScorpionEntity extends Monster implements GeoEntity {
|
|||||||
if (tag.contains("HardenSummonedScorpions")) {
|
if (tag.contains("HardenSummonedScorpions")) {
|
||||||
this.hardenSummonedScorpions = tag.getInt("HardenSummonedScorpions");
|
this.hardenSummonedScorpions = tag.getInt("HardenSummonedScorpions");
|
||||||
}
|
}
|
||||||
|
if (tag.contains("HasTakenDamage")) {
|
||||||
|
this.hasTakenDamage = tag.getBoolean("HasTakenDamage");
|
||||||
|
}
|
||||||
if (tag.contains("EncounterHomeX") && tag.contains("EncounterHomeY") && tag.contains("EncounterHomeZ")) {
|
if (tag.contains("EncounterHomeX") && tag.contains("EncounterHomeY") && tag.contains("EncounterHomeZ")) {
|
||||||
this.encounterHome = new BlockPos(tag.getInt("EncounterHomeX"), tag.getInt("EncounterHomeY"), tag.getInt("EncounterHomeZ"));
|
this.encounterHome = new BlockPos(tag.getInt("EncounterHomeX"), tag.getInt("EncounterHomeY"), tag.getInt("EncounterHomeZ"));
|
||||||
}
|
}
|
||||||
|
|||||||
+11
@@ -1,6 +1,7 @@
|
|||||||
package com.craisinlord.antarchy.content.entity;
|
package com.craisinlord.antarchy.content.entity;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
|
import com.craisinlord.antarchy.content.boss.BossCombatUtil;
|
||||||
import com.craisinlord.antarchy.content.AntarchyGameRules;
|
import com.craisinlord.antarchy.content.AntarchyGameRules;
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||||
@@ -593,6 +594,8 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl
|
|||||||
amount *= 0.5F;
|
amount *= 0.5F;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
amount = BossCombatUtil.capSingleHitAtHalfHealth(this, amount);
|
||||||
|
|
||||||
if (!this.level().isClientSide && !this.isTame() && !this.isKnockedDown() && !this.isDeadOrDying()) {
|
if (!this.level().isClientSide && !this.isTame() && !this.isKnockedDown() && !this.isDeadOrDying()) {
|
||||||
float knockThreshold = Math.max(1.0F, this.getMaxHealth() * 0.05F);
|
float knockThreshold = Math.max(1.0F, this.getMaxHealth() * 0.05F);
|
||||||
if (this.getHealth() - amount <= knockThreshold) {
|
if (this.getHealth() - amount <= knockThreshold) {
|
||||||
@@ -608,6 +611,14 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl
|
|||||||
return super.hurt(source, amount);
|
return super.hurt(source, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
|
if (super.isInvulnerableTo(source)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return BossCombatUtil.isOutOfDamageRange(this, AntarchySettings.herculesBeetleDamageRange());
|
||||||
|
}
|
||||||
|
|
||||||
private void enterKnockedDown() {
|
private void enterKnockedDown() {
|
||||||
if (this.isKnockedDown()) {
|
if (this.isKnockedDown()) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
+9
@@ -1,6 +1,7 @@
|
|||||||
package com.craisinlord.antarchy.content.entity;
|
package com.craisinlord.antarchy.content.entity;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
|
import com.craisinlord.antarchy.content.boss.BossCombatUtil;
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
import com.craisinlord.antarchy.content.damage.AntarchyDamageSources;
|
import com.craisinlord.antarchy.content.damage.AntarchyDamageSources;
|
||||||
@@ -285,6 +286,14 @@ public class ToreterrorEntity extends Monster implements GeoEntity {
|
|||||||
return super.hurt(source, amount);
|
return super.hurt(source, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
|
if (super.isInvulnerableTo(source)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return BossCombatUtil.isOutOfDamageRange(this, AntarchySettings.toreterrorDamageRange());
|
||||||
|
}
|
||||||
|
|
||||||
private void enterPhase2() {
|
private void enterPhase2() {
|
||||||
this.entityData.set(PHASE_2, true);
|
this.entityData.set(PHASE_2, true);
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-2
@@ -1,6 +1,7 @@
|
|||||||
package com.craisinlord.antarchy.content.entity.brutalfly;
|
package com.craisinlord.antarchy.content.entity.brutalfly;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
|
import com.craisinlord.antarchy.content.boss.BossCombatUtil;
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
@@ -383,12 +384,15 @@ public class BrutalflyEntity extends Monster implements GeoEntity {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.hurt(source, amount);
|
return super.hurt(source, BossCombatUtil.capSingleHitAtHalfHealth(this, amount));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInvulnerableTo(DamageSource source) {
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
return this.postCocoonInvulnerableTicks > 0 || super.isInvulnerableTo(source);
|
if (this.postCocoonInvulnerableTicks > 0 || super.isInvulnerableTo(source)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return BossCombatUtil.isOutOfDamageRange(this, AntarchySettings.brutalflyDamageRange());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tickCombat(LivingEntity target) {
|
private void tickCombat(LivingEntity target) {
|
||||||
|
|||||||
+5
-5
@@ -130,9 +130,9 @@ public class FlyingSquirrelEntity extends TamableAnimal implements GeoEntity {
|
|||||||
private static final double SHOULDER_HEAD_Y_OFFSET = 0.26D;
|
private static final double SHOULDER_HEAD_Y_OFFSET = 0.26D;
|
||||||
|
|
||||||
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
||||||
private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walking");
|
private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk");
|
||||||
private static final RawAnimation CLIMB_ANIM = RawAnimation.begin().thenLoop("climbing");
|
private static final RawAnimation CLIMB_ANIM = RawAnimation.begin().thenLoop("climbing");
|
||||||
private static final RawAnimation GLIDE_ANIM = RawAnimation.begin().thenLoop("gliding");
|
private static final RawAnimation GLIDE_ANIM = RawAnimation.begin().thenLoop("fly");
|
||||||
private static final RawAnimation PICKUP_ANIM = RawAnimation.begin().thenPlay("item_pickup");
|
private static final RawAnimation PICKUP_ANIM = RawAnimation.begin().thenPlay("item_pickup");
|
||||||
private static final String QUIRK_CONTROLLER = "quirk_controller";
|
private static final String QUIRK_CONTROLLER = "quirk_controller";
|
||||||
private static final String QUIRK_1_TRIGGER = "quirk1";
|
private static final String QUIRK_1_TRIGGER = "quirk1";
|
||||||
@@ -2146,10 +2146,10 @@ public class FlyingSquirrelEntity extends TamableAnimal implements GeoEntity {
|
|||||||
@Nullable
|
@Nullable
|
||||||
protected Vec3 getPosition() {
|
protected Vec3 getPosition() {
|
||||||
BlockPos target = this.findBestArborealDestination();
|
BlockPos target = this.findBestArborealDestination();
|
||||||
if (target == null) {
|
if (target != null) {
|
||||||
return null;
|
return Vec3.atBottomCenterOf(target);
|
||||||
}
|
}
|
||||||
return Vec3.atBottomCenterOf(target);
|
return super.getPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+11
-2
@@ -4,6 +4,7 @@ import com.craisinlord.antarchy.Antarchy;
|
|||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
|
import com.craisinlord.antarchy.content.boss.BossCombatUtil;
|
||||||
import com.craisinlord.antarchy.content.damage.AntarchyDamageSources;
|
import com.craisinlord.antarchy.content.damage.AntarchyDamageSources;
|
||||||
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
|
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
|
||||||
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
|
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
|
||||||
@@ -150,7 +151,7 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO
|
|||||||
.add(Attributes.ATTACK_DAMAGE, AntarchySettings.krakenAttackDamage())
|
.add(Attributes.ATTACK_DAMAGE, AntarchySettings.krakenAttackDamage())
|
||||||
.add(Attributes.MOVEMENT_SPEED, AntarchySettings.krakenMovementSpeed())
|
.add(Attributes.MOVEMENT_SPEED, AntarchySettings.krakenMovementSpeed())
|
||||||
.add(Attributes.FLYING_SPEED, AntarchySettings.krakenFlyingSpeed())
|
.add(Attributes.FLYING_SPEED, AntarchySettings.krakenFlyingSpeed())
|
||||||
.add(Attributes.FOLLOW_RANGE, 64.0D)
|
.add(Attributes.FOLLOW_RANGE, AntarchySettings.krakenFollowRange())
|
||||||
.add(Attributes.KNOCKBACK_RESISTANCE, AntarchySettings.krakenKnockbackResistance())
|
.add(Attributes.KNOCKBACK_RESISTANCE, AntarchySettings.krakenKnockbackResistance())
|
||||||
.add(Attributes.ARMOR, AntarchySettings.krakenArmor());
|
.add(Attributes.ARMOR, AntarchySettings.krakenArmor());
|
||||||
}
|
}
|
||||||
@@ -368,7 +369,15 @@ public class KrakenEntity extends Monster implements GeoEntity, MultipartEntityO
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.hurt(source, amount);
|
return super.hurt(source, BossCombatUtil.capSingleHitAtHalfHealth(this, amount));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
|
if (super.isInvulnerableTo(source)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return BossCombatUtil.isOutOfDamageRange(this, AntarchySettings.krakenDamageRange());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+7
-11
@@ -128,27 +128,23 @@ public class TentacleEntity extends Mob implements GeoEntity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int interval = Math.max(1, AntarchySettings.krakensGraspTentacleDamageIntervalTicks());
|
int refreshTicks = Math.max(1, AntarchySettings.krakensGraspTentacleSlownessRefreshTicks());
|
||||||
if (this.lifetimeTicks % interval == 0) {
|
if (this.lifetimeTicks % refreshTicks == 0) {
|
||||||
this.grabNearbyEntities();
|
this.slowNearbyEntities(refreshTicks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void grabNearbyEntities() {
|
private void slowNearbyEntities(int refreshTicks) {
|
||||||
double radius = AntarchySettings.krakensGraspTentacleRadius();
|
double radius = AntarchySettings.krakensGraspTentacleRadius();
|
||||||
AABB area = this.getBoundingBox().inflate(radius, radius * 0.6D, radius);
|
AABB area = this.getBoundingBox().inflate(radius, radius * 0.6D, radius);
|
||||||
List<LivingEntity> victims = this.level().getEntitiesOfClass(LivingEntity.class, area,
|
List<LivingEntity> victims = this.level().getEntitiesOfClass(LivingEntity.class, area,
|
||||||
entity -> entity.isAlive() && !entity.isSpectator() && !entity.getUUID().equals(this.ownerId)
|
entity -> entity.isAlive() && !entity.isSpectator() && !entity.getUUID().equals(this.ownerId)
|
||||||
&& !(entity instanceof Player player && player.isCreative()));
|
&& !(entity instanceof Player player && player.isCreative()));
|
||||||
|
|
||||||
for (LivingEntity victim : victims) {
|
int amplifier = Math.max(0, AntarchySettings.krakensGraspTentacleSlownessAmplifier());
|
||||||
if (this.level() instanceof ServerLevel serverLevel) {
|
|
||||||
victim.hurt(this.damageSources().mobAttack(this), (float) AntarchySettings.krakensGraspTentacleDamage());
|
|
||||||
serverLevel.sendParticles(net.minecraft.core.particles.ParticleTypes.SPLASH,
|
|
||||||
victim.getX(), victim.getY(0.6D), victim.getZ(), 8, 0.2D, 0.2D, 0.2D, 0.05D);
|
|
||||||
}
|
|
||||||
|
|
||||||
victim.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, AntarchySettings.krakensGraspTentacleDamageIntervalTicks() + 10, 1, false, true, true));
|
for (LivingEntity victim : victims) {
|
||||||
|
victim.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, refreshTicks + 4, amplifier, false, true, true));
|
||||||
|
|
||||||
Vec3 pull = this.position().subtract(victim.position()).multiply(1.0D, 0.0D, 1.0D);
|
Vec3 pull = this.position().subtract(victim.position()).multiply(1.0D, 0.0D, 1.0D);
|
||||||
if (pull.lengthSqr() > 1.0E-4D) {
|
if (pull.lengthSqr() > 1.0E-4D) {
|
||||||
|
|||||||
+64
-16
@@ -1,6 +1,7 @@
|
|||||||
package com.craisinlord.antarchy.content.entity.lucid;
|
package com.craisinlord.antarchy.content.entity.lucid;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.network.syncher.SynchedEntityData;
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||||||
@@ -11,18 +12,30 @@ import net.minecraft.world.entity.Entity;
|
|||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.projectile.ThrowableProjectile;
|
import net.minecraft.world.entity.projectile.ThrowableProjectile;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.EntityHitResult;
|
import net.minecraft.world.phys.EntityHitResult;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
import software.bernie.geckolib.animatable.GeoEntity;
|
||||||
|
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||||
|
import software.bernie.geckolib.animation.AnimatableManager;
|
||||||
|
import software.bernie.geckolib.animation.AnimationController;
|
||||||
|
import software.bernie.geckolib.animation.AnimationState;
|
||||||
|
import software.bernie.geckolib.animation.PlayState;
|
||||||
|
import software.bernie.geckolib.animation.RawAnimation;
|
||||||
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
public class LucidBoltEntity extends ThrowableProjectile {
|
public class LucidBoltEntity extends ThrowableProjectile implements GeoEntity {
|
||||||
private static final int MAX_LIFETIME_TICKS = 40;
|
private static final int MAX_LIFETIME_TICKS = 40;
|
||||||
private static final int INVERTED_EFFECT_DURATION = 100;
|
private static final int INVERTED_EFFECT_DURATION = 100;
|
||||||
private static final double BASE_DAMAGE = 3.0D;
|
private static final double BASE_DAMAGE = 3.0D;
|
||||||
|
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
||||||
|
|
||||||
public static Supplier<Holder<MobEffect>> invertedEffectSupplier;
|
public static Supplier<Holder<MobEffect>> invertedEffectSupplier;
|
||||||
|
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
|
||||||
public LucidBoltEntity(EntityType<? extends LucidBoltEntity> entityType, Level level) {
|
public LucidBoltEntity(EntityType<? extends LucidBoltEntity> entityType, Level level) {
|
||||||
super(entityType, level);
|
super(entityType, level);
|
||||||
@@ -36,6 +49,7 @@ public class LucidBoltEntity extends ThrowableProjectile {
|
|||||||
|
|
||||||
private void configureBolt() {
|
private void configureBolt() {
|
||||||
this.setNoGravity(true);
|
this.setNoGravity(true);
|
||||||
|
this.noCulling = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -54,26 +68,29 @@ public class LucidBoltEntity extends ThrowableProjectile {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
super.tick();
|
super.tick();
|
||||||
|
this.realignToMotion();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onHitEntity(EntityHitResult result) {
|
protected void onHitEntity(EntityHitResult result) {
|
||||||
if (!this.level().isClientSide() && result.getEntity() instanceof LivingEntity target
|
if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) {
|
||||||
&& target.getType().is(AntarchyTags.Entities.LUCID_BOLT_IMMUNE)) {
|
spawnImpactParticles(serverLevel, result.getLocation());
|
||||||
this.discard();
|
if (result.getEntity() instanceof LivingEntity target && target.getType().is(AntarchyTags.Entities.LUCID_BOLT_IMMUNE)) {
|
||||||
return;
|
this.discard();
|
||||||
}
|
return;
|
||||||
|
|
||||||
if (!this.level().isClientSide() && result.getEntity() instanceof LivingEntity target) {
|
|
||||||
Entity owner = this.getOwner();
|
|
||||||
if (owner instanceof LivingEntity shooter) {
|
|
||||||
target.hurt(this.damageSources().mobAttack(shooter), (float) BASE_DAMAGE);
|
|
||||||
} else {
|
|
||||||
target.hurt(this.damageSources().magic(), (float) BASE_DAMAGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (invertedEffectSupplier != null) {
|
if (result.getEntity() instanceof LivingEntity target) {
|
||||||
target.addEffect(new MobEffectInstance(invertedEffectSupplier.get(), INVERTED_EFFECT_DURATION, 0, false, true));
|
Entity owner = this.getOwner();
|
||||||
|
if (owner instanceof LivingEntity shooter) {
|
||||||
|
target.hurt(this.damageSources().mobAttack(shooter), (float) BASE_DAMAGE);
|
||||||
|
} else {
|
||||||
|
target.hurt(this.damageSources().magic(), (float) BASE_DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (invertedEffectSupplier != null) {
|
||||||
|
target.addEffect(new MobEffectInstance(invertedEffectSupplier.get(), INVERTED_EFFECT_DURATION, 0, false, true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,9 +99,40 @@ public class LucidBoltEntity extends ThrowableProjectile {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onHitBlock(BlockHitResult result) {
|
protected void onHitBlock(BlockHitResult result) {
|
||||||
if (!this.level().isClientSide()) {
|
if (!this.level().isClientSide() && this.level() instanceof ServerLevel serverLevel) {
|
||||||
|
spawnImpactParticles(serverLevel, result.getLocation());
|
||||||
this.level().playSound(null, result.getBlockPos(), AntarchySoundEvents.LUCID_BOLT_SOUND.get(), SoundSource.HOSTILE, 0.8F, 1.0F);
|
this.level().playSound(null, result.getBlockPos(), AntarchySoundEvents.LUCID_BOLT_SOUND.get(), SoundSource.HOSTILE, 0.8F, 1.0F);
|
||||||
}
|
}
|
||||||
this.discard();
|
this.discard();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void spawnImpactParticles(ServerLevel level, Vec3 position) {
|
||||||
|
level.sendParticles(AntarchyObjects.LUCID_BOLT_IMPACT_LARGE.get(), position.x, position.y, position.z, 2, 0.08D, 0.08D, 0.08D, 0.01D);
|
||||||
|
level.sendParticles(AntarchyObjects.LUCID_BOLT_IMPACT_SMALL.get(), position.x, position.y, position.z, 10, 0.16D, 0.16D, 0.16D, 0.065D);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void realignToMotion() {
|
||||||
|
net.minecraft.world.phys.Vec3 motion = this.getDeltaMovement();
|
||||||
|
if (motion.lengthSqr() < 1.0E-6D) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
double horizontal = Math.sqrt(motion.x * motion.x + motion.z * motion.z);
|
||||||
|
this.setYRot((float) (net.minecraft.util.Mth.atan2(motion.z, motion.x) * (180.0D / Math.PI)) - 90.0F);
|
||||||
|
this.setXRot((float) (-(net.minecraft.util.Mth.atan2(motion.y, horizontal) * (180.0D / Math.PI))));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
|
||||||
|
controllers.add(new AnimationController<>(this, "bolt_controller", 0, this::boltController));
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayState boltController(AnimationState<LucidBoltEntity> state) {
|
||||||
|
return state.setAndContinue(IDLE_ANIM);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||||
|
return this.geoCache;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+42
-30
@@ -102,7 +102,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
private static final int SPECIAL_ROAR = 5;
|
private static final int SPECIAL_ROAR = 5;
|
||||||
private static final int SPECIAL_ROAR_P2 = 6;
|
private static final int SPECIAL_ROAR_P2 = 6;
|
||||||
private static final int SPECIAL_PHASE_TWO = 7;
|
private static final int SPECIAL_PHASE_TWO = 7;
|
||||||
private static final int SPECIAL_PORTAL = 8;
|
private static final int SPECIAL_PORTAL_ENTER = 8;
|
||||||
|
private static final int SPECIAL_PORTAL_EXIT = 9;
|
||||||
|
private static final int SPECIAL_DEATH = 10;
|
||||||
private static final int ATTACK_TOTAL_TICKS = 20;
|
private static final int ATTACK_TOTAL_TICKS = 20;
|
||||||
private static final int ATTACK_DAMAGE_TICK = 10;
|
private static final int ATTACK_DAMAGE_TICK = 10;
|
||||||
private static final int INTRO_ROAR_TICKS = 30;
|
private static final int INTRO_ROAR_TICKS = 30;
|
||||||
@@ -136,12 +138,14 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
private static final double PHASE_TWO_HEALTH_FRACTION = 0.5D;
|
private static final double PHASE_TWO_HEALTH_FRACTION = 0.5D;
|
||||||
private static final double PORTAL_RANGE = 32.0D;
|
private static final double PORTAL_RANGE = 32.0D;
|
||||||
private static final double PORTAL_MIN_RANGE_SQR = 49.0D;
|
private static final double PORTAL_MIN_RANGE_SQR = 49.0D;
|
||||||
|
private static final double PORTAL_ENTRY_EXIT_MIN_RANGE_SQR = 49.0D;
|
||||||
private static final double PORTAL_EXIT_OFFSET = 2.35D;
|
private static final double PORTAL_EXIT_OFFSET = 2.35D;
|
||||||
private static final double PORTAL_TRANSPORT_RADIUS = 1.25D;
|
|
||||||
private static final double FLYING_APPROACH_STRAFE_OFFSET = 2.1D;
|
private static final double FLYING_APPROACH_STRAFE_OFFSET = 2.1D;
|
||||||
private static final double FLYING_APPROACH_HEIGHT = 0.45D;
|
private static final double FLYING_APPROACH_HEIGHT = 0.45D;
|
||||||
private static final double FLYING_APPROACH_HEIGHT_PHASE_TWO = 0.8D;
|
private static final double FLYING_APPROACH_HEIGHT_PHASE_TWO = 0.8D;
|
||||||
private static final double FLYING_APPROACH_TOO_CLOSE_RANGE_SQR = 9.0D;
|
private static final double FLYING_APPROACH_TOO_CLOSE_RANGE_SQR = 9.0D;
|
||||||
|
private static final double FLYING_OVERHEAD_STALL_RANGE_SQR = 4.0D;
|
||||||
|
private static final double FLYING_OVERHEAD_STALL_HEIGHT = 2.1D;
|
||||||
private static final double ANIMATION_MOVEMENT_THRESHOLD_SQR = 0.01D;
|
private static final double ANIMATION_MOVEMENT_THRESHOLD_SQR = 0.01D;
|
||||||
|
|
||||||
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle");
|
||||||
@@ -159,7 +163,8 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
private static final String SPECIAL_ROAR_TRIGGER = "roar";
|
private static final String SPECIAL_ROAR_TRIGGER = "roar";
|
||||||
private static final String SPECIAL_ROAR_P2_TRIGGER = "roar_P2";
|
private static final String SPECIAL_ROAR_P2_TRIGGER = "roar_P2";
|
||||||
private static final String SPECIAL_PHASE_TWO_TRIGGER = "phase2";
|
private static final String SPECIAL_PHASE_TWO_TRIGGER = "phase2";
|
||||||
private static final String SPECIAL_PORTAL_TRIGGER = "portal_out";
|
private static final String SPECIAL_PORTAL_ENTER_TRIGGER = "portal_enter";
|
||||||
|
private static final String SPECIAL_PORTAL_EXIT_TRIGGER = "portal_out";
|
||||||
private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenPlayAndHold("attack");
|
private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenPlayAndHold("attack");
|
||||||
private static final RawAnimation ATTACK_P2_ANIM = RawAnimation.begin().thenPlayAndHold("attack_P2");
|
private static final RawAnimation ATTACK_P2_ANIM = RawAnimation.begin().thenPlayAndHold("attack_P2");
|
||||||
private static final RawAnimation FLY_ATTACK_ANIM = RawAnimation.begin().thenPlayAndHold("attack2");
|
private static final RawAnimation FLY_ATTACK_ANIM = RawAnimation.begin().thenPlayAndHold("attack2");
|
||||||
@@ -167,7 +172,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
private static final RawAnimation ROAR_ANIM = RawAnimation.begin().thenPlayAndHold("roar");
|
private static final RawAnimation ROAR_ANIM = RawAnimation.begin().thenPlayAndHold("roar");
|
||||||
private static final RawAnimation ROAR_P2_ANIM = RawAnimation.begin().thenPlayAndHold("roar_P2");
|
private static final RawAnimation ROAR_P2_ANIM = RawAnimation.begin().thenPlayAndHold("roar_P2");
|
||||||
private static final RawAnimation PHASE_TWO_TRANSITION_ANIM = RawAnimation.begin().thenPlayAndHold("phase2");
|
private static final RawAnimation PHASE_TWO_TRANSITION_ANIM = RawAnimation.begin().thenPlayAndHold("phase2");
|
||||||
private static final RawAnimation PORTAL_ATTACK_ANIM = RawAnimation.begin().thenPlayAndHold("portal_out");
|
private static final RawAnimation PORTAL_ENTER_ANIM = RawAnimation.begin().thenPlayAndHold("portal_enter");
|
||||||
|
private static final RawAnimation PORTAL_EXIT_ANIM = RawAnimation.begin().thenPlayAndHold("portal_out");
|
||||||
|
private static final RawAnimation DEATH_ANIM = RawAnimation.begin().thenPlayAndHold("death");
|
||||||
|
|
||||||
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
|
||||||
@@ -264,7 +271,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
.triggerableAnim(SPECIAL_ROAR_TRIGGER, ROAR_ANIM)
|
.triggerableAnim(SPECIAL_ROAR_TRIGGER, ROAR_ANIM)
|
||||||
.triggerableAnim(SPECIAL_ROAR_P2_TRIGGER, ROAR_P2_ANIM)
|
.triggerableAnim(SPECIAL_ROAR_P2_TRIGGER, ROAR_P2_ANIM)
|
||||||
.triggerableAnim(SPECIAL_PHASE_TWO_TRIGGER, PHASE_TWO_TRANSITION_ANIM)
|
.triggerableAnim(SPECIAL_PHASE_TWO_TRIGGER, PHASE_TWO_TRANSITION_ANIM)
|
||||||
.triggerableAnim(SPECIAL_PORTAL_TRIGGER, PORTAL_ATTACK_ANIM));
|
.triggerableAnim(SPECIAL_PORTAL_ENTER_TRIGGER, PORTAL_ENTER_ANIM)
|
||||||
|
.triggerableAnim(SPECIAL_PORTAL_EXIT_TRIGGER, PORTAL_EXIT_ANIM)
|
||||||
|
.triggerableAnim("death", DEATH_ANIM));
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState mainAnimController(AnimationState<NightmareEntity> state) {
|
private PlayState mainAnimController(AnimationState<NightmareEntity> state) {
|
||||||
@@ -555,6 +564,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
@Override
|
@Override
|
||||||
protected void tickDeath() {
|
protected void tickDeath() {
|
||||||
this.deathTime++;
|
this.deathTime++;
|
||||||
|
if (this.deathTime == 1) {
|
||||||
|
this.selectSpecialAnimation(SPECIAL_DEATH);
|
||||||
|
}
|
||||||
if (this.deathTime >= DEATH_TICKS) {
|
if (this.deathTime >= DEATH_TICKS) {
|
||||||
this.remove(RemovalReason.KILLED);
|
this.remove(RemovalReason.KILLED);
|
||||||
this.dropExperience(this);
|
this.dropExperience(this);
|
||||||
@@ -678,7 +690,6 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
if (!this.attackHitApplied && elapsed >= ATTACK_DAMAGE_TICK) {
|
if (!this.attackHitApplied && elapsed >= ATTACK_DAMAGE_TICK) {
|
||||||
this.attackHitApplied = true;
|
this.attackHitApplied = true;
|
||||||
this.playNightmareBiteSound();
|
this.playNightmareBiteSound();
|
||||||
this.spawnBiteEffect();
|
|
||||||
this.performAttackHit();
|
this.performAttackHit();
|
||||||
}
|
}
|
||||||
if (--this.attackAnimationTicks <= 0) {
|
if (--this.attackAnimationTicks <= 0) {
|
||||||
@@ -731,14 +742,16 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean canStartPortalAttack(LivingEntity target) {
|
private boolean canStartPortalAttack(LivingEntity target) {
|
||||||
|
Vec3 entryPos = this.getPortalEntryPosition();
|
||||||
if (!this.isPhaseTwo() || this.isPhaseTransitioning() || this.portalCooldown > 0 || this.attackAnimationTicks > 0 || this.roarTicks > 0) return false;
|
if (!this.isPhaseTwo() || this.isPhaseTransitioning() || this.portalCooldown > 0 || this.attackAnimationTicks > 0 || this.roarTicks > 0) return false;
|
||||||
if (!this.hasLineOfSight(target) || this.distanceToSqr(target) > PORTAL_RANGE * PORTAL_RANGE) return false;
|
if (!this.hasLineOfSight(target) || this.distanceToSqr(target) > PORTAL_RANGE * PORTAL_RANGE) return false;
|
||||||
if (this.horizontalDistanceToSqr(target) < PORTAL_MIN_RANGE_SQR) return false;
|
if (this.horizontalDistanceToSqr(target) < PORTAL_MIN_RANGE_SQR) return false;
|
||||||
return this.portalAttackTicks <= 0 && this.findPortalExitPos(target) != null;
|
return this.portalAttackTicks <= 0 && this.findPortalExitPos(target, entryPos) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startPortalAttack(LivingEntity target) {
|
private void startPortalAttack(LivingEntity target) {
|
||||||
Vec3 exitPos = this.findPortalExitPos(target);
|
Vec3 entryPos = this.getPortalEntryPosition();
|
||||||
|
Vec3 exitPos = this.findPortalExitPos(target, entryPos);
|
||||||
if (exitPos == null || !(this.level() instanceof ServerLevel serverLevel)) return;
|
if (exitPos == null || !(this.level() instanceof ServerLevel serverLevel)) return;
|
||||||
this.clearNightmarePortals();
|
this.clearNightmarePortals();
|
||||||
this.portalExitPos = exitPos;
|
this.portalExitPos = exitPos;
|
||||||
@@ -749,9 +762,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
this.attackHitApplied = false;
|
this.attackHitApplied = false;
|
||||||
this.attackCooldown = 24;
|
this.attackCooldown = 24;
|
||||||
this.portalCooldown = 180 + this.random.nextInt(100);
|
this.portalCooldown = 180 + this.random.nextInt(100);
|
||||||
this.selectSpecialAnimation(SPECIAL_PORTAL);
|
this.selectSpecialAnimation(SPECIAL_PORTAL_ENTER);
|
||||||
this.getNavigation().stop();
|
this.getNavigation().stop();
|
||||||
this.entryPortal = NightmarePortalEntity.spawnAt(serverLevel, this.position().add(this.getViewVector(1.0F).multiply(1.6D, 0.0D, 1.6D)), this, this.position(), PORTAL_LIFETIME_TICKS);
|
this.entryPortal = NightmarePortalEntity.spawnAt(serverLevel, entryPos, this, this.position(), PORTAL_LIFETIME_TICKS);
|
||||||
this.exitPortal = NightmarePortalEntity.spawnAt(serverLevel, exitPos, this, this.position(), PORTAL_LIFETIME_TICKS);
|
this.exitPortal = NightmarePortalEntity.spawnAt(serverLevel, exitPos, this, this.position(), PORTAL_LIFETIME_TICKS);
|
||||||
if (this.entryPortal != null && this.exitPortal != null) {
|
if (this.entryPortal != null && this.exitPortal != null) {
|
||||||
this.entryPortal.linkTo(this.exitPortal);
|
this.entryPortal.linkTo(this.exitPortal);
|
||||||
@@ -771,7 +784,6 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
}
|
}
|
||||||
if (!this.portalAttackHitApplied && elapsed >= PORTAL_DAMAGE_TICK) {
|
if (!this.portalAttackHitApplied && elapsed >= PORTAL_DAMAGE_TICK) {
|
||||||
this.portalAttackHitApplied = true;
|
this.portalAttackHitApplied = true;
|
||||||
this.spawnBiteEffect();
|
|
||||||
this.performPortalExitHit();
|
this.performPortalExitHit();
|
||||||
}
|
}
|
||||||
if (--this.portalAttackTicks <= 0) {
|
if (--this.portalAttackTicks <= 0) {
|
||||||
@@ -786,6 +798,7 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
if (this.portalExitPos == null) return;
|
if (this.portalExitPos == null) return;
|
||||||
this.portalTravelTicks = PORTAL_TRAVEL_INVULNERABLE_TICKS;
|
this.portalTravelTicks = PORTAL_TRAVEL_INVULNERABLE_TICKS;
|
||||||
this.setPortalCooldown();
|
this.setPortalCooldown();
|
||||||
|
this.selectSpecialAnimation(SPECIAL_PORTAL_EXIT);
|
||||||
this.teleportTo(this.portalExitPos.x, this.portalExitPos.y, this.portalExitPos.z);
|
this.teleportTo(this.portalExitPos.x, this.portalExitPos.y, this.portalExitPos.z);
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
this.faceTowardTarget(target, 180.0F);
|
this.faceTowardTarget(target, 180.0F);
|
||||||
@@ -820,7 +833,6 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
List<LivingEntity> victims = this.level().getEntitiesOfClass(LivingEntity.class, hitBox, this::canTargetEntity);
|
List<LivingEntity> victims = this.level().getEntitiesOfClass(LivingEntity.class, hitBox, this::canTargetEntity);
|
||||||
for (LivingEntity victim : victims) {
|
for (LivingEntity victim : victims) {
|
||||||
if (victim.hurt(this.nightmareDamageSource(), damage)) {
|
if (victim.hurt(this.nightmareDamageSource(), damage)) {
|
||||||
this.spawnBiteEffectAt(victim);
|
|
||||||
this.applyNightmareStrikeEffects(victim);
|
this.applyNightmareStrikeEffects(victim);
|
||||||
this.knockAway(victim, 1.35D, 0.35D);
|
this.knockAway(victim, 1.35D, 0.35D);
|
||||||
}
|
}
|
||||||
@@ -831,20 +843,6 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void spawnBiteEffect() {
|
|
||||||
if (!(this.level() instanceof ServerLevel serverLevel)) return;
|
|
||||||
Vec3 forward = this.getViewVector(1.0F).normalize();
|
|
||||||
Vec3 spawnPos = this.getEyePosition().add(forward.scale(this.getBbWidth() * 0.65D)).add(0.0D, -0.45D, 0.0D);
|
|
||||||
NightmareBiteEntity.spawnAt(serverLevel, spawnPos, this.getYRot(), this.isPhaseTwo());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void spawnBiteEffectAt(LivingEntity target) {
|
|
||||||
if (!(this.level() instanceof ServerLevel serverLevel)) return;
|
|
||||||
float yaw = target.getYRot() + 180.0F;
|
|
||||||
Vec3 spawnPos = target.getEyePosition().add(0.0D, -0.35D, 0.0D);
|
|
||||||
NightmareBiteEntity.spawnAt(serverLevel, spawnPos, yaw, this.isPhaseTwo());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void playNightmareBiteSound() {
|
private void playNightmareBiteSound() {
|
||||||
this.playSound(AntarchySoundEvents.NIGHTMARE_BITE.get(), 1.3F, 0.72F + this.random.nextFloat() * 0.08F);
|
this.playSound(AntarchySoundEvents.NIGHTMARE_BITE.get(), 1.3F, 0.72F + this.random.nextFloat() * 0.08F);
|
||||||
}
|
}
|
||||||
@@ -941,8 +939,14 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
Vec3 right = new Vec3(-forward.z, 0.0D, forward.x);
|
Vec3 right = new Vec3(-forward.z, 0.0D, forward.x);
|
||||||
double strafe = this.tickCount % 32 < 16 ? FLYING_APPROACH_STRAFE_OFFSET : -FLYING_APPROACH_STRAFE_OFFSET;
|
double strafe = this.tickCount % 32 < 16 ? FLYING_APPROACH_STRAFE_OFFSET : -FLYING_APPROACH_STRAFE_OFFSET;
|
||||||
double height = this.isPhaseTwo() ? FLYING_APPROACH_HEIGHT_PHASE_TWO : FLYING_APPROACH_HEIGHT;
|
double height = this.isPhaseTwo() ? FLYING_APPROACH_HEIGHT_PHASE_TWO : FLYING_APPROACH_HEIGHT;
|
||||||
|
double horizontalDistanceSqr = this.horizontalDistanceToSqr(target);
|
||||||
|
double overheadGap = this.getY() - target.getY();
|
||||||
Vec3 anchor = target.position().subtract(forward.scale(1.4D)).add(right.scale(strafe));
|
Vec3 anchor = target.position().subtract(forward.scale(1.4D)).add(right.scale(strafe));
|
||||||
if (this.horizontalDistanceToSqr(target) <= FLYING_APPROACH_TOO_CLOSE_RANGE_SQR) {
|
if (horizontalDistanceSqr <= FLYING_OVERHEAD_STALL_RANGE_SQR && overheadGap >= FLYING_OVERHEAD_STALL_HEIGHT) {
|
||||||
|
anchor = target.position().add(right.scale(strafe * 1.4D)).subtract(forward.scale(0.6D));
|
||||||
|
return new Vec3(anchor.x, target.getEyeY() + 0.15D, anchor.z);
|
||||||
|
}
|
||||||
|
if (horizontalDistanceSqr <= FLYING_APPROACH_TOO_CLOSE_RANGE_SQR) {
|
||||||
anchor = target.position().subtract(forward.scale(2.4D));
|
anchor = target.position().subtract(forward.scale(2.4D));
|
||||||
}
|
}
|
||||||
return new Vec3(anchor.x, target.getEyeY() + height, anchor.z);
|
return new Vec3(anchor.x, target.getEyeY() + height, anchor.z);
|
||||||
@@ -985,8 +989,12 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Vec3 getPortalEntryPosition() {
|
||||||
|
return this.position().add(this.getViewVector(1.0F).multiply(1.6D, 0.0D, 1.6D));
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private Vec3 findPortalExitPos(LivingEntity target) {
|
private Vec3 findPortalExitPos(LivingEntity target, Vec3 entryPos) {
|
||||||
Vec3 forward = target.getLookAngle().multiply(1.0D, 0.0D, 1.0D);
|
Vec3 forward = target.getLookAngle().multiply(1.0D, 0.0D, 1.0D);
|
||||||
if (forward.lengthSqr() < 1.0E-4D) {
|
if (forward.lengthSqr() < 1.0E-4D) {
|
||||||
forward = this.getViewVector(1.0F).multiply(1.0D, 0.0D, 1.0D);
|
forward = this.getViewVector(1.0F).multiply(1.0D, 0.0D, 1.0D);
|
||||||
@@ -1004,7 +1012,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
};
|
};
|
||||||
for (Vec3 candidate : candidates) {
|
for (Vec3 candidate : candidates) {
|
||||||
Vec3 adjusted = this.findValidPortalPosition(candidate);
|
Vec3 adjusted = this.findValidPortalPosition(candidate);
|
||||||
if (adjusted != null && adjusted.distanceToSqr(this.position()) <= PORTAL_RANGE * PORTAL_RANGE) {
|
if (adjusted != null
|
||||||
|
&& adjusted.distanceToSqr(this.position()) <= PORTAL_RANGE * PORTAL_RANGE
|
||||||
|
&& adjusted.distanceToSqr(entryPos) >= PORTAL_ENTRY_EXIT_MIN_RANGE_SQR) {
|
||||||
return adjusted;
|
return adjusted;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1172,7 +1182,9 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
case SPECIAL_ROAR -> SPECIAL_ROAR_TRIGGER;
|
case SPECIAL_ROAR -> SPECIAL_ROAR_TRIGGER;
|
||||||
case SPECIAL_ROAR_P2 -> SPECIAL_ROAR_P2_TRIGGER;
|
case SPECIAL_ROAR_P2 -> SPECIAL_ROAR_P2_TRIGGER;
|
||||||
case SPECIAL_PHASE_TWO -> SPECIAL_PHASE_TWO_TRIGGER;
|
case SPECIAL_PHASE_TWO -> SPECIAL_PHASE_TWO_TRIGGER;
|
||||||
case SPECIAL_PORTAL -> SPECIAL_PORTAL_TRIGGER;
|
case SPECIAL_PORTAL_ENTER -> SPECIAL_PORTAL_ENTER_TRIGGER;
|
||||||
|
case SPECIAL_PORTAL_EXIT -> SPECIAL_PORTAL_EXIT_TRIGGER;
|
||||||
|
case SPECIAL_DEATH -> "death";
|
||||||
default -> null;
|
default -> null;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
-31
@@ -9,9 +9,7 @@ import net.minecraft.server.level.ServerLevel;
|
|||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.AABB;
|
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import software.bernie.geckolib.animatable.GeoEntity;
|
import software.bernie.geckolib.animatable.GeoEntity;
|
||||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||||
@@ -22,7 +20,6 @@ import software.bernie.geckolib.animation.PlayState;
|
|||||||
import software.bernie.geckolib.animation.RawAnimation;
|
import software.bernie.geckolib.animation.RawAnimation;
|
||||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class NightmarePortalEntity extends Entity implements GeoEntity {
|
public class NightmarePortalEntity extends Entity implements GeoEntity {
|
||||||
@@ -103,26 +100,6 @@ public class NightmarePortalEntity extends Entity implements GeoEntity {
|
|||||||
this.discard();
|
this.discard();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.transportEntities();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void transportEntities() {
|
|
||||||
NightmarePortalEntity other = this.getLinkedPortal();
|
|
||||||
Vec3 destination = other != null ? other.position() : this.fallbackDestination;
|
|
||||||
AABB area = this.getBoundingBox().inflate(1.05D, 0.75D, 1.05D);
|
|
||||||
List<LivingEntity> entities = this.level().getEntitiesOfClass(LivingEntity.class, area, entity -> entity.isAlive() && !entity.isSpectator());
|
|
||||||
for (LivingEntity entity : entities) {
|
|
||||||
if (entity.getUUID().equals(this.ownerId)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (entity.isOnPortalCooldown()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
entity.teleportTo(destination.x, destination.y, destination.z);
|
|
||||||
entity.setPortalCooldown();
|
|
||||||
entity.setDeltaMovement(entity.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D));
|
|
||||||
entity.hurtMarked = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void linkTo(NightmarePortalEntity other) {
|
public void linkTo(NightmarePortalEntity other) {
|
||||||
@@ -130,14 +107,6 @@ public class NightmarePortalEntity extends Entity implements GeoEntity {
|
|||||||
this.fallbackDestination = other.position();
|
this.fallbackDestination = other.position();
|
||||||
}
|
}
|
||||||
|
|
||||||
private NightmarePortalEntity getLinkedPortal() {
|
|
||||||
if (!(this.level() instanceof ServerLevel serverLevel) || this.linkedPortalId == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
Entity entity = serverLevel.getEntity(this.linkedPortalId);
|
|
||||||
return entity instanceof NightmarePortalEntity portal ? portal : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isClosing() {
|
public boolean isClosing() {
|
||||||
return this.getEntityData().get(CLOSING);
|
return this.getEntityData().get(CLOSING);
|
||||||
}
|
}
|
||||||
|
|||||||
+39
-7
@@ -156,9 +156,10 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (getMode(stack)) {
|
switch (getMode(stack)) {
|
||||||
|
case NONE -> applyNoneHit(player, target);
|
||||||
case BASILISK -> applyBasiliskHit(target, serverLevel);
|
case BASILISK -> applyBasiliskHit(target, serverLevel);
|
||||||
case LUCID -> applyLucidHit(target, player, serverLevel);
|
case LUCID -> applyLucidHit(target, player, serverLevel);
|
||||||
case NIGHTMARE -> applyNightmareHit(target, serverLevel);
|
case NIGHTMARE -> applyNightmareHit(player, target, serverLevel);
|
||||||
case KRAKEN -> applyKrakenHit(player, target, serverLevel);
|
case KRAKEN -> applyKrakenHit(player, target, serverLevel);
|
||||||
case HERCULES -> applyHerculesHit(player, target, serverLevel);
|
case HERCULES -> applyHerculesHit(player, target, serverLevel);
|
||||||
case MOLEVORE, TORETERROR -> {
|
case MOLEVORE, TORETERROR -> {
|
||||||
@@ -249,6 +250,22 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
player.awardStat(Stats.ITEM_USED.get(this));
|
player.awardStat(Stats.ITEM_USED.get(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void applyNoneHit(Player attacker, LivingEntity target) {
|
||||||
|
double bonusPercent = AntarchySettings.bigBerthaNoneModeDamageBonusPercent();
|
||||||
|
if (bonusPercent <= 0.0D) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float bonusDamage = (float) (attacker.getAttributeValue(Attributes.ATTACK_DAMAGE) * (bonusPercent / 100.0D));
|
||||||
|
if (bonusDamage <= 0.0F) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
target.invulnerableTime = 0;
|
||||||
|
target.hurt(attacker.damageSources().playerAttack(attacker), bonusDamage);
|
||||||
|
target.hurtMarked = true;
|
||||||
|
}
|
||||||
|
|
||||||
private void applyBasiliskHit(LivingEntity target, ServerLevel level) {
|
private void applyBasiliskHit(LivingEntity target, ServerLevel level) {
|
||||||
target.addEffect(new MobEffectInstance(
|
target.addEffect(new MobEffectInstance(
|
||||||
MobEffects.POISON,
|
MobEffects.POISON,
|
||||||
@@ -273,7 +290,9 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
true));
|
true));
|
||||||
}
|
}
|
||||||
|
|
||||||
level.sendParticles(ParticleTypes.PORTAL, target.getX(), target.getY(0.8D), target.getZ(), 12, 0.25D, 0.25D, 0.25D, 0.08D);
|
Vec3 impactPos = new Vec3(target.getX(), target.getY(0.8D), target.getZ());
|
||||||
|
LucidBoltEntity.spawnImpactParticles(level, impactPos);
|
||||||
|
level.sendParticles(ParticleTypes.PORTAL, impactPos.x, impactPos.y, impactPos.z, 12, 0.25D, 0.25D, 0.25D, 0.08D);
|
||||||
if (!AntarchyGravityApi.isGravityInverted(player)) {
|
if (!AntarchyGravityApi.isGravityInverted(player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -293,11 +312,22 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
target.hurtMarked = true;
|
target.hurtMarked = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyNightmareHit(LivingEntity target, ServerLevel level) {
|
private void applyNightmareHit(Player attacker, LivingEntity target, ServerLevel level) {
|
||||||
if (target instanceof Player) {
|
if (target instanceof Player) {
|
||||||
target.addEffect(new MobEffectInstance(AntarchyObjects.DREAD.get(), AntarchySettings.nightmareDreadTicks(), 0));
|
target.addEffect(new MobEffectInstance(AntarchyObjects.DREAD.get(), AntarchySettings.nightmareDreadTicks(), 0));
|
||||||
}
|
}
|
||||||
target.addEffect(new MobEffectInstance(MobEffects.WEAKNESS, AntarchySettings.nightmareWeaknessTicks(), 0));
|
target.addEffect(new MobEffectInstance(MobEffects.WEAKNESS, AntarchySettings.nightmareWeaknessTicks(), 0));
|
||||||
|
|
||||||
|
double bonusPercent = AntarchySettings.bigBerthaNightmareDamageBonusPercent();
|
||||||
|
if (bonusPercent > 0.0D) {
|
||||||
|
float bonusDamage = (float) (attacker.getAttributeValue(Attributes.ATTACK_DAMAGE) * (bonusPercent / 100.0D));
|
||||||
|
if (bonusDamage > 0.0F) {
|
||||||
|
target.invulnerableTime = 0;
|
||||||
|
target.hurt(attacker.damageSources().playerAttack(attacker), bonusDamage);
|
||||||
|
target.hurtMarked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
level.sendParticles(ParticleTypes.SOUL_FIRE_FLAME, target.getX(), target.getY(0.8D), target.getZ(), 12, 0.3D, 0.3D, 0.3D, 0.01D);
|
level.sendParticles(ParticleTypes.SOUL_FIRE_FLAME, target.getX(), target.getY(0.8D), target.getZ(), 12, 0.3D, 0.3D, 0.3D, 0.01D);
|
||||||
level.sendParticles(ParticleTypes.SMOKE, target.getX(), target.getY(0.8D), target.getZ(), 6, 0.2D, 0.2D, 0.2D, 0.02D);
|
level.sendParticles(ParticleTypes.SMOKE, target.getX(), target.getY(0.8D), target.getZ(), 6, 0.2D, 0.2D, 0.2D, 0.02D);
|
||||||
}
|
}
|
||||||
@@ -545,7 +575,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
|
|
||||||
private static void setMode(ItemStack stack, BossMode mode) {
|
private static void setMode(ItemStack stack, BossMode mode) {
|
||||||
CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> {
|
CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> {
|
||||||
if (mode == BossMode.BASILISK) {
|
if (mode == BossMode.NONE) {
|
||||||
tag.remove(MODE_TAG);
|
tag.remove(MODE_TAG);
|
||||||
} else {
|
} else {
|
||||||
tag.putInt(MODE_TAG, mode.id);
|
tag.putInt(MODE_TAG, mode.id);
|
||||||
@@ -616,7 +646,8 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private enum BossMode {
|
private enum BossMode {
|
||||||
BASILISK(0, "tooltip.antarchy.big_bertha.mode.basilisk", "message.antarchy.big_bertha.mode.basilisk"),
|
NONE(0, "tooltip.antarchy.big_bertha.mode.none", "message.antarchy.big_bertha.mode.none"),
|
||||||
|
BASILISK(7, "tooltip.antarchy.big_bertha.mode.basilisk", "message.antarchy.big_bertha.mode.basilisk"),
|
||||||
NIGHTMARE(1, "tooltip.antarchy.big_bertha.mode.nightmare", "message.antarchy.big_bertha.mode.nightmare"),
|
NIGHTMARE(1, "tooltip.antarchy.big_bertha.mode.nightmare", "message.antarchy.big_bertha.mode.nightmare"),
|
||||||
KRAKEN(2, "tooltip.antarchy.big_bertha.mode.kraken", "message.antarchy.big_bertha.mode.kraken"),
|
KRAKEN(2, "tooltip.antarchy.big_bertha.mode.kraken", "message.antarchy.big_bertha.mode.kraken"),
|
||||||
MOLEVORE(3, "tooltip.antarchy.big_bertha.mode.molevore", "message.antarchy.big_bertha.mode.molevore"),
|
MOLEVORE(3, "tooltip.antarchy.big_bertha.mode.molevore", "message.antarchy.big_bertha.mode.molevore"),
|
||||||
@@ -636,13 +667,14 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
|
|
||||||
private BossMode next() {
|
private BossMode next() {
|
||||||
return switch (this) {
|
return switch (this) {
|
||||||
|
case NONE -> BASILISK;
|
||||||
case BASILISK -> LUCID;
|
case BASILISK -> LUCID;
|
||||||
case LUCID -> NIGHTMARE;
|
case LUCID -> NIGHTMARE;
|
||||||
case NIGHTMARE -> KRAKEN;
|
case NIGHTMARE -> KRAKEN;
|
||||||
case KRAKEN -> HERCULES;
|
case KRAKEN -> HERCULES;
|
||||||
case HERCULES -> MOLEVORE;
|
case HERCULES -> MOLEVORE;
|
||||||
case MOLEVORE -> TORETERROR;
|
case MOLEVORE -> TORETERROR;
|
||||||
case TORETERROR -> BASILISK;
|
case TORETERROR -> NONE;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -652,7 +684,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return BASILISK;
|
return NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+652
-23
@@ -7,72 +7,72 @@
|
|||||||
"bones": {
|
"bones": {
|
||||||
"left_leg": {
|
"left_leg": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["5+math.cos(query.anim_time*2)*2", 0, -2.5]
|
"vector": ["5+math.cos(q.anim_time*90*2)*2", 0, -2.5]
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"vector": [0, "0.15+math.cos(query.anim_time*2)/14", "-math.cos(query.anim_time*2)/5"]
|
"vector": [0, "0.15+math.cos(q.anim_time*90*2)/14", "-math.cos(q.anim_time*90*2)/5"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"right_leg": {
|
"right_leg": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["5+math.cos(query.anim_time*2)*2", 0, 2.5]
|
"vector": ["5+math.cos(q.anim_time*90*2)*2", 0, 2.5]
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"vector": [0, "0.15+math.cos(query.anim_time*2)/14", "-math.cos(query.anim_time*2)/5"]
|
"vector": [0, "0.15+math.cos(q.anim_time*90*2)/14", "-math.cos(q.anim_time*90*2)/5"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"torso": {
|
"torso": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["-math.cos(query.anim_time*2-60)", 0, 0]
|
"vector": ["-math.cos(q.anim_time*90*2-60)", 0, 0]
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"vector": [0, "math.cos(query.anim_time*2)/5", 0]
|
"vector": [0, "math.cos(q.anim_time*90*2)/5", 0]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"head": {
|
"head": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["-math.cos(query.anim_time*2-160)*2", 0, 0]
|
"vector": ["-math.cos(q.anim_time*90*2-160)*2", 0, 0]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"left_ear": {
|
"left_ear": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["math.cos(query.anim_time*2)*6", "math.cos(query.anim_time*2-40)*5", "7.5+math.cos(query.anim_time*2+30)*5"]
|
"vector": ["math.cos(q.anim_time*90*2)*6", "math.cos(q.anim_time*90*2-40)*5", "7.5+math.cos(q.anim_time*90*2+30)*5"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"right_ear": {
|
"right_ear": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["math.cos(query.anim_time*2)*6", "-math.cos(query.anim_time*2-40)*5", "-7.5-math.cos(query.anim_time*2+30)*5"]
|
"vector": ["math.cos(q.anim_time*90*2)*6", "-math.cos(q.anim_time*90*2-40)*5", "-7.5-math.cos(q.anim_time*90*2+30)*5"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tail": {
|
"tail": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["math.cos(query.anim_time*2+50)*4", 0, 0]
|
"vector": ["math.cos(q.anim_time*90*2+50)*4", 0, 0]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"left_arm": {
|
"left_arm": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["math.cos(query.anim_time*2-60)*3-3", 0, -5]
|
"vector": ["math.cos(q.anim_time*90*2-60)*3-3", 0, -5]
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"vector": [0, "-math.cos(query.anim_time*2-30)/4", "-math.cos(query.anim_time*2-50)/5"]
|
"vector": [0, "-math.cos(q.anim_time*90*2-30)/4", "-math.cos(q.anim_time*90*2-50)/5"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"right_arm": {
|
"right_arm": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["math.cos(query.anim_time*2-60)*3-3", 0, 5]
|
"vector": ["math.cos(q.anim_time*90*2-60)*3-3", 0, 5]
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"vector": [0, "-math.cos(query.anim_time*2-30)/4", "-math.cos(query.anim_time*2-50)/5"]
|
"vector": [0, "-math.cos(q.anim_time*90*2-30)/4", "-math.cos(q.anim_time*90*2-50)/5"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"left_leg2": {
|
"left_leg2": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["-5-math.cos(query.anim_time*2)*2", 0, 2.5]
|
"vector": ["-5-math.cos(q.anim_time*90*2)*2", 0, 2.5]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"right_leg2": {
|
"right_leg2": {
|
||||||
"rotation": {
|
"rotation": {
|
||||||
"vector": ["-5-math.cos(query.anim_time*2)*2", 0, -2.5]
|
"vector": ["-5-math.cos(q.anim_time*90*2)*2", 0, -2.5]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1478,7 +1478,7 @@
|
|||||||
"vector": [0, 0, 0]
|
"vector": [0, 0, 0]
|
||||||
},
|
},
|
||||||
"0.7917": {
|
"0.7917": {
|
||||||
"vector": ["-math.cos(query.anim_time*32-60)*20", "-math.cos(query.anim_time*32)*20", "math.cos(query.anim_time*32-50)*20"]
|
"vector": ["-math.cos(q.anim_time*90*32-60)*20", "-math.cos(q.anim_time*90*32)*20", "math.cos(q.anim_time*90*32-50)*20"]
|
||||||
},
|
},
|
||||||
"0.9167": {
|
"0.9167": {
|
||||||
"vector": [0, 0, 0]
|
"vector": [0, 0, 0]
|
||||||
@@ -1491,7 +1491,7 @@
|
|||||||
"vector": [0, 0, 0]
|
"vector": [0, 0, 0]
|
||||||
},
|
},
|
||||||
"0.4583": {
|
"0.4583": {
|
||||||
"vector": ["-math.cos(query.anim_time*32-60)*20", "math.cos(query.anim_time*32)*20", "-math.cos(query.anim_time*32-50)*20"]
|
"vector": ["-math.cos(q.anim_time*90*32-60)*20", "math.cos(q.anim_time*90*32)*20", "-math.cos(q.anim_time*90*32-50)*20"]
|
||||||
},
|
},
|
||||||
"0.5833": {
|
"0.5833": {
|
||||||
"vector": [0, 0, 0]
|
"vector": [0, 0, 0]
|
||||||
@@ -1500,7 +1500,7 @@
|
|||||||
"vector": [0, 0, 0]
|
"vector": [0, 0, 0]
|
||||||
},
|
},
|
||||||
"1.2917": {
|
"1.2917": {
|
||||||
"vector": ["-math.cos(query.anim_time*32-60)*20", "math.cos(query.anim_time*32)*20", "-math.cos(query.anim_time*32-50)*20"]
|
"vector": ["-math.cos(q.anim_time*90*32-60)*20", "math.cos(q.anim_time*90*32)*20", "-math.cos(q.anim_time*90*32-50)*20"]
|
||||||
},
|
},
|
||||||
"1.4167": {
|
"1.4167": {
|
||||||
"vector": [0, 0, 0]
|
"vector": [0, 0, 0]
|
||||||
@@ -1547,13 +1547,13 @@
|
|||||||
},
|
},
|
||||||
"1.0": {
|
"1.0": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": [67.5, "-math.cos(query.anim_time*16)*10", "-17.5+math.cos(query.anim_time*16-60)*10"]
|
"vector": [67.5, "-math.cos(q.anim_time*90*16)*10", "-17.5+math.cos(q.anim_time*90*16-60)*10"]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
"1.1667": {
|
"1.1667": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": [67.5, "-math.cos(query.anim_time*16)*10", "-17.5+math.cos(query.anim_time*16-60)*10"]
|
"vector": [67.5, "-math.cos(q.anim_time*90*16)*10", "-17.5+math.cos(q.anim_time*90*16-60)*10"]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
@@ -2145,13 +2145,13 @@
|
|||||||
},
|
},
|
||||||
"0.5": {
|
"0.5": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": ["85-math.clamp(math.cos(query.anim_time*10-80)*10,0,10)", "math.cos(query.anim_time*8)*20", "math.cos(query.anim_time*8-80)*10"]
|
"vector": [78, 14, 4]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
"1.0": {
|
"1.0": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": ["85-math.clamp(math.cos(query.anim_time*10-80)*10,0,10)", "math.cos(query.anim_time*8)*20", "math.cos(query.anim_time*8-80)*10"]
|
"vector": [78, 14, 4]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
@@ -2740,6 +2740,635 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"item_pickup": {
|
||||||
|
"animation_length": 3,
|
||||||
|
"bones": {
|
||||||
|
"body": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-65, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-15, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-65, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left_arm": {
|
||||||
|
"rotation": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 22.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 22.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 22.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-44.8924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.375": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-49.8924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-42.3924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.625": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-44.8924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-49.8924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.875": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-42.3924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-44.8924, 3.2116, 26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tail": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [42.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"head": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [60, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -1.0425, -1.31366]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left_flying_part": {
|
||||||
|
"scale": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_arm": {
|
||||||
|
"rotation": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, -22.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, -22.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, -22.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-44.8924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.375": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-49.8924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-42.3924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.625": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-44.8924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-49.8924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.875": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-42.3924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-44.8924, -3.2116, -26.3342]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_flying_part": {
|
||||||
|
"scale": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left_cheeks": {
|
||||||
|
"scale": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.125": {
|
||||||
|
"post": {
|
||||||
|
"vector": [1, 1, 1]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_cheeks": {
|
||||||
|
"scale": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.125": {
|
||||||
|
"post": {
|
||||||
|
"vector": [1, 1, 1]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"climbing": {
|
||||||
|
"loop": true,
|
||||||
|
"animation_length": 1,
|
||||||
|
"bones": {
|
||||||
|
"left_leg": {
|
||||||
|
"rotation": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [108.1133, 33.6443, 10.272]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [108.1133, 33.6443, 10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [118.1133, 33.6443, 10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [108.1133, 33.6443, 10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [108.1133, 33.6443, 10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -1, -2]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_leg": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [108.1133, -33.6443, -10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [118.1133, -33.6443, -10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [108.1133, -33.6443, -10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [108.1133, -33.6443, -10.272]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -1, -2]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"head": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left_cheeks": {
|
||||||
|
"scale": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_cheeks": {
|
||||||
|
"scale": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tail": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left_arm": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-110, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -2, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -1.06031, 0.34202]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -2.06, -0.66]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -2, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"left_flying_part": {
|
||||||
|
"scale": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_arm": {
|
||||||
|
"rotation": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-110, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.25": {
|
||||||
|
"pre": {
|
||||||
|
"vector": [0, -2, 0]
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -2, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -1.06031, 0.34202]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -2.06, -0.66]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -2, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_flying_part": {
|
||||||
|
"scale": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"squirrel": {
|
||||||
|
"rotation": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"vector": [0, 6.75, 7]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+469
-5
@@ -7984,7 +7984,7 @@
|
|||||||
},
|
},
|
||||||
"0.2917": {
|
"0.2917": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": [0, "-1+math.cos(query.anim_time*32)*2", 6]
|
"vector": [0, "-1+math.cos(q.anim_time*90*32)*2", 6]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
@@ -8014,7 +8014,7 @@
|
|||||||
},
|
},
|
||||||
"0.7917": {
|
"0.7917": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": [0, "-1+math.cos(query.anim_time*32)*2", 6]
|
"vector": [0, "-1+math.cos(q.anim_time*90*32)*2", 6]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
@@ -8044,7 +8044,7 @@
|
|||||||
},
|
},
|
||||||
"1.2917": {
|
"1.2917": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": [0, "-1+math.cos(query.anim_time*32)*2", 6]
|
"vector": [0, "-1+math.cos(q.anim_time*90*32)*2", 6]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
@@ -9176,13 +9176,13 @@
|
|||||||
},
|
},
|
||||||
"1.6667": {
|
"1.6667": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": ["35-math.cos(query.anim_time*32-50)*5", 0, 0]
|
"vector": ["35-math.cos(q.anim_time*90*32-50)*5", 0, 0]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
"1.875": {
|
"1.875": {
|
||||||
"post": {
|
"post": {
|
||||||
"vector": ["35-math.cos(query.anim_time*32-50)*5", 0, 0]
|
"vector": ["35-math.cos(q.anim_time*90*32-50)*5", 0, 0]
|
||||||
},
|
},
|
||||||
"lerp_mode": "catmullrom"
|
"lerp_mode": "catmullrom"
|
||||||
},
|
},
|
||||||
@@ -11470,6 +11470,470 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"death": {
|
||||||
|
"animation_length": 1,
|
||||||
|
"bones": {
|
||||||
|
"head": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [22.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-55, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [7.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [7.15656, 2.24944, -17.35932]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neck": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [15, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-40, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [2.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [22.01816, 4.75113, -11.57518]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"torso": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-27.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"vector": [-90, 0, 0]
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"vector": [-65, 0, 0]
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"L_Tight": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-27.5, -20, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-27.5, -37.5, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-27.5, -37.5, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [55.06424, 30.58184, -17.91705]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"L_leg": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [27.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Tail": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [20, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [37.5, 0, -52.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [37.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-25, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Tail2": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [20, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [36.39498, -17.72091, -24.60981]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [32.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Tail3": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [20, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [53.55239, -54.46865, -30.64234]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [37.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [17.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"R_Tight": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-27.5, 20, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-80, 20, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-80, 20, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [44.19476, -22.13991, 4.11405]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"R_leg": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [27.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [62.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [62.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"R_foot": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"vector": [40, 0, 0]
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"vector": [40, 0, 0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"L_Wing": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-2.56152, 6.42053, -28.46504]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-2.56152, 6.42053, 16.53496]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"L_Wing2": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -17.5, 7.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [16.24074, -6.60796, -60.94387]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [2.14498, 17.78381, 79.71688]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-5.14352, -8.08642, 3.86612]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"L_Wing3": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-6.15491, -16.41371, 35.88852]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [16.63598, -5.01987, 94.75926]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-2.83416, 4.94206, -18.16209]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"R_Wing": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-2.56152, -6.42053, 28.46504]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-2.56152, -6.42053, -16.53496]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"R_Wing2": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, 17.5, -7.5]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [16.24074, 6.60796, 60.94387]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [2.14498, -17.78381, -79.71688]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-5.14352, 8.08642, -3.86612]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"R_Wing3": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-6.15491, 16.41371, -35.88852]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": {
|
||||||
|
"vector": [16.63598, 5.01987, -94.75926]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [-2.83416, -4.94206, 18.16209]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jaw": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [12.5, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [45, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4583": {
|
||||||
|
"post": {
|
||||||
|
"vector": [43.931, 4.14085, 0.75952]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [10, 0, 0]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Nightmare": {
|
||||||
|
"rotation": {
|
||||||
|
"vector": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -0.5, -6]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -0.5, -2]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -10.5, -21]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5833": {
|
||||||
|
"post": {
|
||||||
|
"vector": [0, -8.5, -21]
|
||||||
|
},
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,37 +13,56 @@
|
|||||||
"bones": [
|
"bones": [
|
||||||
{
|
{
|
||||||
"name": "squirrel",
|
"name": "squirrel",
|
||||||
"pivot": [0, 1, 0]
|
"pivot": [0, 0, 0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "body",
|
||||||
|
"parent": "squirrel",
|
||||||
|
"pivot": [0, 6, 0]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "left_leg",
|
"name": "left_leg",
|
||||||
"parent": "squirrel",
|
"parent": "body",
|
||||||
"pivot": [3, 5, 3.25],
|
"pivot": [3, 5, 3.25],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [2, 0, 1.25], "size": [2, 5, 4], "uv": [0, 30]},
|
{"origin": [2, 0, 1.25], "size": [2, 5, 4], "uv": [0, 30]}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "left_leg2",
|
||||||
|
"parent": "left_leg",
|
||||||
|
"pivot": [3, 0, 1.25],
|
||||||
|
"cubes": [
|
||||||
{"origin": [2, 0, -0.75], "size": [2, 1, 2], "uv": [35, 8]}
|
{"origin": [2, 0, -0.75], "size": [2, 1, 2], "uv": [35, 8]}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "right_leg",
|
"name": "right_leg",
|
||||||
"parent": "squirrel",
|
"parent": "body",
|
||||||
"pivot": [-3, 5, 3.25],
|
"pivot": [-3, 5, 3.25],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-4, 0, 1.25], "size": [2, 5, 4], "uv": [0, 30], "mirror": true},
|
{"origin": [-4, 0, 1.25], "size": [2, 5, 4], "uv": [0, 30], "mirror": true}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "right_leg2",
|
||||||
|
"parent": "right_leg",
|
||||||
|
"pivot": [-3, 0, 1.25],
|
||||||
|
"cubes": [
|
||||||
{"origin": [-4, 0, -0.75], "size": [2, 1, 2], "uv": [35, 8], "mirror": true}
|
{"origin": [-4, 0, -0.75], "size": [2, 1, 2], "uv": [35, 8], "mirror": true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "body",
|
"name": "torso",
|
||||||
"parent": "squirrel",
|
"parent": "body",
|
||||||
"pivot": [0, 4, 2],
|
"pivot": [0, 4, 3],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [0, 8.5, -6], "size": [0, 3, 11], "uv": [23, 30]}
|
{"origin": [0, 8.5, -6], "size": [0, 3, 11], "uv": [23, 30]}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "body_2",
|
"name": "body_2",
|
||||||
"parent": "body",
|
"parent": "torso",
|
||||||
"pivot": [0, 6, -0.5],
|
"pivot": [0, 6, -0.5],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-3, 3.5, -6], "size": [6, 5, 11], "uv": [0, 0]},
|
{"origin": [-3, 3.5, -6], "size": [6, 5, 11], "uv": [0, 0]},
|
||||||
@@ -52,7 +71,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "head",
|
"name": "head",
|
||||||
"parent": "body",
|
"parent": "torso",
|
||||||
"pivot": [0, 7.33333, -5.91667],
|
"pivot": [0, 7.33333, -5.91667],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-2, 4.5, -11], "size": [4, 5, 5], "uv": [17, 17]},
|
{"origin": [-2, 4.5, -11], "size": [4, 5, 5], "uv": [17, 17]},
|
||||||
@@ -78,7 +97,7 @@
|
|||||||
{
|
{
|
||||||
"name": "left_ear",
|
"name": "left_ear",
|
||||||
"parent": "head",
|
"parent": "head",
|
||||||
"pivot": [1, 9.5, -6.5],
|
"pivot": [1, 9.5, -7],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [1, 9.5, -7], "size": [2, 2, 0], "uv": [36, 13]}
|
{"origin": [1, 9.5, -7], "size": [2, 2, 0], "uv": [36, 13]}
|
||||||
]
|
]
|
||||||
@@ -86,14 +105,14 @@
|
|||||||
{
|
{
|
||||||
"name": "right_ear",
|
"name": "right_ear",
|
||||||
"parent": "head",
|
"parent": "head",
|
||||||
"pivot": [-1, 9.5, -6.5],
|
"pivot": [-1, 9.5, -7],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-3, 9.5, -7], "size": [2, 2, 0], "uv": [36, 13], "mirror": true}
|
{"origin": [-3, 9.5, -7], "size": [2, 2, 0], "uv": [36, 13], "mirror": true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "tail",
|
"name": "tail",
|
||||||
"parent": "body",
|
"parent": "torso",
|
||||||
"pivot": [0, 6, 5],
|
"pivot": [0, 6, 5],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-1.5, 5, 5], "size": [3, 11, 3], "uv": [14, 27]},
|
{"origin": [-1.5, 5, 5], "size": [3, 11, 3], "uv": [14, 27]},
|
||||||
@@ -103,7 +122,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "left_arm",
|
"name": "left_arm",
|
||||||
"parent": "body",
|
"parent": "torso",
|
||||||
"pivot": [3, 5, -4.5],
|
"pivot": [3, 5, -4.5],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [2, 0, -5.5], "size": [2, 5, 2], "uv": [35, 0]}
|
{"origin": [2, 0, -5.5], "size": [2, 5, 2], "uv": [35, 0]}
|
||||||
@@ -112,14 +131,14 @@
|
|||||||
{
|
{
|
||||||
"name": "left_flying_part",
|
"name": "left_flying_part",
|
||||||
"parent": "left_arm",
|
"parent": "left_arm",
|
||||||
"pivot": [3, 5, -1],
|
"pivot": [3, 1, -3.5],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [3, 0, -3.5], "size": [0, 5, 5], "inflate": 0.01, "uv": [26, 22]}
|
{"origin": [3, 0, -3.5], "size": [0, 5, 5], "inflate": 0.01, "uv": [26, 22]}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "right_arm",
|
"name": "right_arm",
|
||||||
"parent": "body",
|
"parent": "torso",
|
||||||
"pivot": [-3, 5, -4.5],
|
"pivot": [-3, 5, -4.5],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-4, 0, -5.5], "size": [2, 5, 2], "uv": [35, 0], "mirror": true}
|
{"origin": [-4, 0, -5.5], "size": [2, 5, 2], "uv": [35, 0], "mirror": true}
|
||||||
@@ -128,7 +147,7 @@
|
|||||||
{
|
{
|
||||||
"name": "right_flying_part",
|
"name": "right_flying_part",
|
||||||
"parent": "right_arm",
|
"parent": "right_arm",
|
||||||
"pivot": [-3, 5, -1],
|
"pivot": [-3, 1, -3.5],
|
||||||
"cubes": [
|
"cubes": [
|
||||||
{"origin": [-3, 0, -3.5], "size": [0, 5, 5], "inflate": 0.01, "uv": [26, 22], "mirror": true}
|
{"origin": [-3, 0, -3.5], "size": [0, 5, 5], "inflate": 0.01, "uv": [26, 22], "mirror": true}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -554,6 +554,7 @@
|
|||||||
"death.attack.jumpy_bug_jump": "%1$s was jumped by Jumpy Bug",
|
"death.attack.jumpy_bug_jump": "%1$s was jumped by Jumpy Bug",
|
||||||
"death.attack.hercules_beetle_obliteration": "%1$s was obliterated by Hercules Beetle",
|
"death.attack.hercules_beetle_obliteration": "%1$s was obliterated by Hercules Beetle",
|
||||||
"message.antarchy.big_bertha.mode": "Big Bertha Mode: %s",
|
"message.antarchy.big_bertha.mode": "Big Bertha Mode: %s",
|
||||||
|
"message.antarchy.big_bertha.mode.none": "None",
|
||||||
"message.antarchy.big_bertha.mode.basilisk": "Basilisk",
|
"message.antarchy.big_bertha.mode.basilisk": "Basilisk",
|
||||||
"message.antarchy.big_bertha.mode.lucid": "Lucid",
|
"message.antarchy.big_bertha.mode.lucid": "Lucid",
|
||||||
"message.antarchy.big_bertha.mode.nightmare": "Nightmare",
|
"message.antarchy.big_bertha.mode.nightmare": "Nightmare",
|
||||||
@@ -591,9 +592,10 @@
|
|||||||
"potion.antarchy.strong_haste": "Strong Haste Potion",
|
"potion.antarchy.strong_haste": "Strong Haste Potion",
|
||||||
"tooltip.antarchy.big_bertha.mode": "Mode: %s",
|
"tooltip.antarchy.big_bertha.mode": "Mode: %s",
|
||||||
"tooltip.antarchy.big_bertha.toggle_mode": "Shift + use to cycle boss modes.",
|
"tooltip.antarchy.big_bertha.toggle_mode": "Shift + use to cycle boss modes.",
|
||||||
|
"tooltip.antarchy.big_bertha.mode.none": "Hits deal a small amount of bonus damage.",
|
||||||
"tooltip.antarchy.big_bertha.mode.basilisk": "Usage paralyzes a target. Hits inflict poison and slow.",
|
"tooltip.antarchy.big_bertha.mode.basilisk": "Usage paralyzes a target. Hits inflict poison and slow.",
|
||||||
"tooltip.antarchy.big_bertha.mode.lucid": "Hits invert targets for a few seconds. Hits deal more damage while you are inverted.",
|
"tooltip.antarchy.big_bertha.mode.lucid": "Hits invert targets for a few seconds. Hits deal more damage while you are inverted.",
|
||||||
"tooltip.antarchy.big_bertha.mode.nightmare": "Players suffer Dread; hits inflict weakness.",
|
"tooltip.antarchy.big_bertha.mode.nightmare": "Hits deal bonus damage; players suffer Dread and hits inflict weakness.",
|
||||||
"tooltip.antarchy.big_bertha.mode.kraken": "Hits slam targets back and call lightning.",
|
"tooltip.antarchy.big_bertha.mode.kraken": "Hits slam targets back and call lightning.",
|
||||||
"tooltip.antarchy.big_bertha.mode.hercules": "Hits deal bonus damage and launch targets high into the air.",
|
"tooltip.antarchy.big_bertha.mode.hercules": "Hits deal bonus damage and launch targets high into the air.",
|
||||||
"tooltip.antarchy.big_bertha.mode.molevore": "Use to spin forward and drill through Molevore blocks.",
|
"tooltip.antarchy.big_bertha.mode.molevore": "Use to spin forward and drill through Molevore blocks.",
|
||||||
@@ -1044,6 +1046,8 @@
|
|||||||
"music.antarchy.lucid_lullaby.credit": "hewo_",
|
"music.antarchy.lucid_lullaby.credit": "hewo_",
|
||||||
"music.antarchy.venenatus": "Venenatus",
|
"music.antarchy.venenatus": "Venenatus",
|
||||||
"music.antarchy.venenatus.credit": "hewo_",
|
"music.antarchy.venenatus.credit": "hewo_",
|
||||||
|
"music.antarchy.wistful_wanderings": "Wistful Wanderings",
|
||||||
|
"music.antarchy.wistful_wanderings.credit": "hewo_",
|
||||||
"tooltip.antarchy.lucid_anchor.pyramid": "Requires an Antimetal Beacon pyramid above it",
|
"tooltip.antarchy.lucid_anchor.pyramid": "Requires an Antimetal Beacon pyramid above it",
|
||||||
"tooltip.antarchy.lucid_anchor.path": "Projects Inverted downward while it has an unobstructed path to the world below"
|
"tooltip.antarchy.lucid_anchor.path": "Projects Inverted downward while it has an unobstructed path to the world below"
|
||||||
}
|
}
|
||||||
@@ -924,6 +924,14 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"music.game.thoraxis": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "antarchy:lucid_lullaby",
|
||||||
|
"stream": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"venenatus": {
|
"venenatus": {
|
||||||
"sounds": [
|
"sounds": [
|
||||||
{
|
{
|
||||||
@@ -932,6 +940,30 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"music.game.cavaryn": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "antarchy:venenatus",
|
||||||
|
"stream": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wistful_wanderings": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "antarchy:music/game/elythia/wistful_wanderings",
|
||||||
|
"stream": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"music.game.elythia": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "antarchy:wistful_wanderings",
|
||||||
|
"stream": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"lucid_ambient": {
|
"lucid_ambient": {
|
||||||
"subtitle": "subtitles.antarchy.lucid_ambient",
|
"subtitle": "subtitles.antarchy.lucid_ambient",
|
||||||
"sounds": [
|
"sounds": [
|
||||||
|
|||||||
BIN
Binary file not shown.
+13
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"antarchy:uranium_ore",
|
||||||
|
"antarchy:deepslate_uranium_ore",
|
||||||
|
"antarchy:broodstone_uranium_ore",
|
||||||
|
"antarchy:titanium_ore",
|
||||||
|
"antarchy:deepslate_titanium_ore",
|
||||||
|
"antarchy:broodstone_titanium_ore",
|
||||||
|
"antarchy:uranium_block",
|
||||||
|
"antarchy:titanium_block"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:venenatus",
|
"sound": "antarchy:music.game.cavaryn",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:venenatus",
|
"sound": "antarchy:music.game.cavaryn",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -15,6 +15,12 @@
|
|||||||
"tick_delay": 8000,
|
"tick_delay": 8000,
|
||||||
"block_search_extent": 8,
|
"block_search_extent": 8,
|
||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
|
},
|
||||||
|
"music": {
|
||||||
|
"sound": "antarchy:music.game.elythia",
|
||||||
|
"min_delay": 12000,
|
||||||
|
"max_delay": 24000,
|
||||||
|
"replace_current_music": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"spawn_costs": {
|
"spawn_costs": {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:venenatus",
|
"sound": "antarchy:music.game.cavaryn",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:venenatus",
|
"sound": "antarchy:music.game.cavaryn",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:lucid_lullaby",
|
"sound": "antarchy:music.game.thoraxis",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:venenatus",
|
"sound": "antarchy:music.game.cavaryn",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:lucid_lullaby",
|
"sound": "antarchy:music.game.thoraxis",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:lucid_lullaby",
|
"sound": "antarchy:music.game.thoraxis",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:venenatus",
|
"sound": "antarchy:music.game.cavaryn",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "minecraft:music.game",
|
"sound": "antarchy:music.game.elythia",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"offset": 2.0
|
"offset": 2.0
|
||||||
},
|
},
|
||||||
"music": {
|
"music": {
|
||||||
"sound": "antarchy:lucid_lullaby",
|
"sound": "antarchy:music.game.thoraxis",
|
||||||
"min_delay": 12000,
|
"min_delay": 12000,
|
||||||
"max_delay": 24000,
|
"max_delay": 24000,
|
||||||
"replace_current_music": true
|
"replace_current_music": true
|
||||||
|
|||||||
@@ -308,6 +308,8 @@ public final class AntarchyFabricContent {
|
|||||||
AntarchyObjects.setLumenFroglight(() -> AntarchyFabricBlocks.LUMEN_FROGLIGHT.get());
|
AntarchyObjects.setLumenFroglight(() -> AntarchyFabricBlocks.LUMEN_FROGLIGHT.get());
|
||||||
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get());
|
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get());
|
||||||
AntarchyObjects.setLotusPollen(() -> AntarchyFabricMisc.LOTUS_POLLEN.get());
|
AntarchyObjects.setLotusPollen(() -> AntarchyFabricMisc.LOTUS_POLLEN.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyFabricMisc.LUCID_BOLT_IMPACT_SMALL.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyFabricMisc.LUCID_BOLT_IMPACT_LARGE.get());
|
||||||
AntarchyObjects.setDorrieInventoryMenu(AntarchyFabricMisc.DORRIE_INVENTORY_MENU);
|
AntarchyObjects.setDorrieInventoryMenu(AntarchyFabricMisc.DORRIE_INVENTORY_MENU);
|
||||||
AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get());
|
AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get());
|
||||||
AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get());
|
AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get());
|
||||||
|
|||||||
+2
@@ -288,6 +288,8 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
registry.register(AntarchyFabricMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
registry.register(AntarchyFabricMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
||||||
registry.register(AntarchyFabricMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
registry.register(AntarchyFabricMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
||||||
registry.register(AntarchyFabricMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
registry.register(AntarchyFabricMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
||||||
|
registry.register(AntarchyFabricMisc.LUCID_BOLT_IMPACT_SMALL.get(), LucidBoltImpactParticle.SmallProvider::new);
|
||||||
|
registry.register(AntarchyFabricMisc.LUCID_BOLT_IMPACT_LARGE.get(), LucidBoltImpactParticle.LargeProvider::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerRenderLayers() {
|
private static void registerRenderLayers() {
|
||||||
|
|||||||
+6
@@ -314,6 +314,12 @@ public final class AntarchyFabricMisc {
|
|||||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
||||||
() -> simpleParticleType());
|
() -> simpleParticleType());
|
||||||
|
|
||||||
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> LUCID_BOLT_IMPACT_SMALL = PARTICLE_TYPES.register("lucid_bolt_impact_small",
|
||||||
|
() -> simpleParticleType());
|
||||||
|
|
||||||
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> LUCID_BOLT_IMPACT_LARGE = PARTICLE_TYPES.register("lucid_bolt_impact_large",
|
||||||
|
() -> simpleParticleType());
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
||||||
() -> particleType(InvertedGeyserBaseParticleOptions.deserializer()));
|
() -> particleType(InvertedGeyserBaseParticleOptions.deserializer()));
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
"refmap": "antarchy.mixins.refmap.json",
|
"refmap": "antarchy.mixins.refmap.json",
|
||||||
"compatibilityLevel": "JAVA_17",
|
"compatibilityLevel": "JAVA_17",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
|
"infinity.AmendmentRareOresMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -322,6 +322,8 @@ public final class AntarchyFabricContent {
|
|||||||
AntarchyObjects.setLumenFroglight(() -> AntarchyFabricBlocks.LUMEN_FROGLIGHT.get());
|
AntarchyObjects.setLumenFroglight(() -> AntarchyFabricBlocks.LUMEN_FROGLIGHT.get());
|
||||||
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get());
|
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get());
|
||||||
AntarchyObjects.setLotusPollen(() -> AntarchyFabricMisc.LOTUS_POLLEN.get());
|
AntarchyObjects.setLotusPollen(() -> AntarchyFabricMisc.LOTUS_POLLEN.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyFabricMisc.LUCID_BOLT_IMPACT_SMALL.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyFabricMisc.LUCID_BOLT_IMPACT_LARGE.get());
|
||||||
AntarchyObjects.setDorrieInventoryMenu(AntarchyFabricMisc.DORRIE_INVENTORY_MENU);
|
AntarchyObjects.setDorrieInventoryMenu(AntarchyFabricMisc.DORRIE_INVENTORY_MENU);
|
||||||
AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get());
|
AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get());
|
||||||
AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get());
|
AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get());
|
||||||
|
|||||||
+2
@@ -288,6 +288,8 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
registry.register(AntarchyFabricMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
registry.register(AntarchyFabricMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
||||||
registry.register(AntarchyFabricMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
registry.register(AntarchyFabricMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
||||||
registry.register(AntarchyFabricMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
registry.register(AntarchyFabricMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
||||||
|
registry.register(AntarchyFabricMisc.LUCID_BOLT_IMPACT_SMALL.get(), LucidBoltImpactParticle.SmallProvider::new);
|
||||||
|
registry.register(AntarchyFabricMisc.LUCID_BOLT_IMPACT_LARGE.get(), LucidBoltImpactParticle.LargeProvider::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerRenderLayers() {
|
private static void registerRenderLayers() {
|
||||||
|
|||||||
+6
@@ -327,6 +327,12 @@ public final class AntarchyFabricMisc {
|
|||||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
||||||
() -> simpleParticleType());
|
() -> simpleParticleType());
|
||||||
|
|
||||||
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> LUCID_BOLT_IMPACT_SMALL = PARTICLE_TYPES.register("lucid_bolt_impact_small",
|
||||||
|
() -> simpleParticleType());
|
||||||
|
|
||||||
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> LUCID_BOLT_IMPACT_LARGE = PARTICLE_TYPES.register("lucid_bolt_impact_large",
|
||||||
|
() -> simpleParticleType());
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
||||||
() -> particleType(InvertedGeyserBaseParticleOptions::codec, InvertedGeyserBaseParticleOptions::streamCodec));
|
() -> particleType(InvertedGeyserBaseParticleOptions::codec, InvertedGeyserBaseParticleOptions::streamCodec));
|
||||||
|
|||||||
+12
@@ -160,6 +160,18 @@ public final class AntarchyFabricSounds {
|
|||||||
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_LULLABY = registerSoundEvent("lucid_lullaby");
|
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_LULLABY = registerSoundEvent("lucid_lullaby");
|
||||||
|
|
||||||
|
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_THORAXIS = registerSoundEvent("music.game.thoraxis");
|
||||||
|
|
||||||
|
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_CAVARYN = registerSoundEvent("music.game.cavaryn");
|
||||||
|
|
||||||
|
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> WISTFUL_WANDERINGS = registerSoundEvent("wistful_wanderings");
|
||||||
|
|
||||||
|
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_ELYTHIA = registerSoundEvent("music.game.elythia");
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_AMBIENT = registerSoundEvent("lucid_ambient");
|
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_AMBIENT = registerSoundEvent("lucid_ambient");
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@
|
|||||||
"JumpyBootsFallDamageMixin",
|
"JumpyBootsFallDamageMixin",
|
||||||
"entity.MultipartEntityLevelRegistryMixin",
|
"entity.MultipartEntityLevelRegistryMixin",
|
||||||
"WoodTypeInvoker",
|
"WoodTypeInvoker",
|
||||||
"infinity.PortalCreatorMixin"
|
"infinity.PortalCreatorMixin",
|
||||||
|
"infinity.AmendmentRareOresMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
"client.CameraShakeMixin",
|
"client.CameraShakeMixin",
|
||||||
|
|||||||
+13
-2
@@ -101,16 +101,22 @@ public final class AntarchyConfigModuleForge {
|
|||||||
AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage());
|
AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage());
|
||||||
AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha());
|
AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha());
|
||||||
|
|
||||||
|
AntarchySettings.setEmperorScorpionDamageRange(AntarchyMobsConfig.emperorScorpionDamageRange());
|
||||||
|
AntarchySettings.setEmperorScorpionMinDespawnTicks(AntarchyMobsConfig.emperorScorpionMinDespawnTicks());
|
||||||
|
|
||||||
AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth());
|
AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth());
|
||||||
AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage());
|
AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage());
|
||||||
AntarchySettings.setKrakenProjectileDamageTakenMultiplier(AntarchyMobsConfig.krakenProjectileDamageTakenMultiplier());
|
AntarchySettings.setKrakenProjectileDamageTakenMultiplier(AntarchyMobsConfig.krakenProjectileDamageTakenMultiplier());
|
||||||
AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled());
|
AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled());
|
||||||
AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled());
|
AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled());
|
||||||
AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon());
|
AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon());
|
||||||
|
AntarchySettings.setKrakenFollowRange(AntarchyMobsConfig.krakenFollowRange());
|
||||||
|
AntarchySettings.setKrakenDamageRange(AntarchyMobsConfig.krakenDamageRange());
|
||||||
|
|
||||||
AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth());
|
AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth());
|
||||||
AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage());
|
AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage());
|
||||||
AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage());
|
AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage());
|
||||||
|
AntarchySettings.setBrutalflyDamageRange(AntarchyMobsConfig.brutalflyDamageRange());
|
||||||
|
|
||||||
AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth());
|
AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth());
|
||||||
AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage());
|
AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage());
|
||||||
@@ -124,6 +130,7 @@ public final class AntarchyConfigModuleForge {
|
|||||||
AntarchySettings.setAlphaMantisFlyingSpeed(AntarchyMobsConfig.alphaMantisFlyingSpeed());
|
AntarchySettings.setAlphaMantisFlyingSpeed(AntarchyMobsConfig.alphaMantisFlyingSpeed());
|
||||||
AntarchySettings.setAlphaMantisSummonIntervalTicks(AntarchyMobsConfig.alphaMantisSummonIntervalTicks());
|
AntarchySettings.setAlphaMantisSummonIntervalTicks(AntarchyMobsConfig.alphaMantisSummonIntervalTicks());
|
||||||
AntarchySettings.setAlphaMantisMaxMinions(AntarchyMobsConfig.alphaMantisMaxMinions());
|
AntarchySettings.setAlphaMantisMaxMinions(AntarchyMobsConfig.alphaMantisMaxMinions());
|
||||||
|
AntarchySettings.setAlphaMantisDamageRange(AntarchyMobsConfig.alphaMantisDamageRange());
|
||||||
|
|
||||||
AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth());
|
AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth());
|
||||||
AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed());
|
AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed());
|
||||||
@@ -190,6 +197,7 @@ public final class AntarchyConfigModuleForge {
|
|||||||
AntarchySettings.setDreadHallucinationMobMaxInterval(AntarchyMobsConfig.dreadHallucinationMobMaxInterval());
|
AntarchySettings.setDreadHallucinationMobMaxInterval(AntarchyMobsConfig.dreadHallucinationMobMaxInterval());
|
||||||
|
|
||||||
AntarchySettings.setToreterrorHealth(AntarchyMobsConfig.toreterrorHealth());
|
AntarchySettings.setToreterrorHealth(AntarchyMobsConfig.toreterrorHealth());
|
||||||
|
AntarchySettings.setToreterrorDamageRange(AntarchyMobsConfig.toreterrorDamageRange());
|
||||||
AntarchySettings.setToreterrorJumpAttackDamage(AntarchyMobsConfig.toreterrorJumpAttackDamage());
|
AntarchySettings.setToreterrorJumpAttackDamage(AntarchyMobsConfig.toreterrorJumpAttackDamage());
|
||||||
AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback());
|
AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback());
|
||||||
AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage());
|
AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage());
|
||||||
@@ -220,6 +228,7 @@ public final class AntarchyConfigModuleForge {
|
|||||||
AntarchySettings.setHerculesBeetleHealth(AntarchyMobsConfig.herculesBeetleHealth());
|
AntarchySettings.setHerculesBeetleHealth(AntarchyMobsConfig.herculesBeetleHealth());
|
||||||
AntarchySettings.setHerculesBeetleAttackDamage(AntarchyMobsConfig.herculesBeetleAttackDamage());
|
AntarchySettings.setHerculesBeetleAttackDamage(AntarchyMobsConfig.herculesBeetleAttackDamage());
|
||||||
AntarchySettings.setHerculesBeetleChargeDamage(AntarchyMobsConfig.herculesBeetleChargeDamage());
|
AntarchySettings.setHerculesBeetleChargeDamage(AntarchyMobsConfig.herculesBeetleChargeDamage());
|
||||||
|
AntarchySettings.setHerculesBeetleDamageRange(AntarchyMobsConfig.herculesBeetleDamageRange());
|
||||||
AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth());
|
AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth());
|
||||||
AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth());
|
AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth());
|
||||||
}
|
}
|
||||||
@@ -282,6 +291,8 @@ public final class AntarchyConfigModuleForge {
|
|||||||
AntarchySettings.setBigBerthaBasiliskCooldownSeconds(AntarchyToolsConfig.bigBerthaBasiliskCooldownSeconds());
|
AntarchySettings.setBigBerthaBasiliskCooldownSeconds(AntarchyToolsConfig.bigBerthaBasiliskCooldownSeconds());
|
||||||
AntarchySettings.setBigBerthaLucidInvertedDurationSeconds(AntarchyToolsConfig.bigBerthaLucidInvertedDurationSeconds());
|
AntarchySettings.setBigBerthaLucidInvertedDurationSeconds(AntarchyToolsConfig.bigBerthaLucidInvertedDurationSeconds());
|
||||||
AntarchySettings.setBigBerthaLucidInvertedDamageBonusPercent(AntarchyToolsConfig.bigBerthaLucidInvertedDamageBonusPercent());
|
AntarchySettings.setBigBerthaLucidInvertedDamageBonusPercent(AntarchyToolsConfig.bigBerthaLucidInvertedDamageBonusPercent());
|
||||||
|
AntarchySettings.setBigBerthaNoneModeDamageBonusPercent(AntarchyToolsConfig.bigBerthaNoneModeDamageBonusPercent());
|
||||||
|
AntarchySettings.setBigBerthaNightmareDamageBonusPercent(AntarchyToolsConfig.bigBerthaNightmareDamageBonusPercent());
|
||||||
AntarchySettings.setKrakensGraspAttackDamage(AntarchyToolsConfig.krakensGraspAttackDamage());
|
AntarchySettings.setKrakensGraspAttackDamage(AntarchyToolsConfig.krakensGraspAttackDamage());
|
||||||
AntarchySettings.setKrakensGraspAttackSpeed(AntarchyToolsConfig.krakensGraspAttackSpeed());
|
AntarchySettings.setKrakensGraspAttackSpeed(AntarchyToolsConfig.krakensGraspAttackSpeed());
|
||||||
AntarchySettings.setKrakensGraspThrownDamage(AntarchyToolsConfig.krakensGraspThrownDamage());
|
AntarchySettings.setKrakensGraspThrownDamage(AntarchyToolsConfig.krakensGraspThrownDamage());
|
||||||
@@ -289,9 +300,9 @@ public final class AntarchyConfigModuleForge {
|
|||||||
AntarchySettings.setKrakensGraspInnateLoyalty(AntarchyToolsConfig.krakensGraspInnateLoyalty());
|
AntarchySettings.setKrakensGraspInnateLoyalty(AntarchyToolsConfig.krakensGraspInnateLoyalty());
|
||||||
AntarchySettings.setKrakensGraspInnateLoyaltyLevel(AntarchyToolsConfig.krakensGraspInnateLoyaltyLevel());
|
AntarchySettings.setKrakensGraspInnateLoyaltyLevel(AntarchyToolsConfig.krakensGraspInnateLoyaltyLevel());
|
||||||
AntarchySettings.setKrakensGraspTentacleDurationTicks(AntarchyToolsConfig.krakensGraspTentacleDurationTicks());
|
AntarchySettings.setKrakensGraspTentacleDurationTicks(AntarchyToolsConfig.krakensGraspTentacleDurationTicks());
|
||||||
AntarchySettings.setKrakensGraspTentacleDamage(AntarchyToolsConfig.krakensGraspTentacleDamage());
|
|
||||||
AntarchySettings.setKrakensGraspTentacleRadius(AntarchyToolsConfig.krakensGraspTentacleRadius());
|
AntarchySettings.setKrakensGraspTentacleRadius(AntarchyToolsConfig.krakensGraspTentacleRadius());
|
||||||
AntarchySettings.setKrakensGraspTentacleDamageIntervalTicks(AntarchyToolsConfig.krakensGraspTentacleDamageIntervalTicks());
|
AntarchySettings.setKrakensGraspTentacleSlownessAmplifier(AntarchyToolsConfig.krakensGraspTentacleSlownessAmplifier());
|
||||||
|
AntarchySettings.setKrakensGraspTentacleSlownessRefreshTicks(AntarchyToolsConfig.krakensGraspTentacleSlownessRefreshTicks());
|
||||||
AntarchySettings.setScorpionWhipBaseDamage(AntarchyToolsConfig.scorpionWhipBaseDamage());
|
AntarchySettings.setScorpionWhipBaseDamage(AntarchyToolsConfig.scorpionWhipBaseDamage());
|
||||||
AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus());
|
AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus());
|
||||||
AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks());
|
AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks());
|
||||||
|
|||||||
@@ -376,6 +376,8 @@ public class AntarchyForge {
|
|||||||
AntarchyObjects.setLumenFroglight(() -> AntarchyForgeBlocks.LUMEN_FROGLIGHT.get());
|
AntarchyObjects.setLumenFroglight(() -> AntarchyForgeBlocks.LUMEN_FROGLIGHT.get());
|
||||||
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyForgeMisc.PEACH_LEAVES_PARTICLE.get());
|
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyForgeMisc.PEACH_LEAVES_PARTICLE.get());
|
||||||
AntarchyObjects.setLotusPollen(() -> AntarchyForgeMisc.LOTUS_POLLEN.get());
|
AntarchyObjects.setLotusPollen(() -> AntarchyForgeMisc.LOTUS_POLLEN.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyForgeMisc.LUCID_BOLT_IMPACT_SMALL.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyForgeMisc.LUCID_BOLT_IMPACT_LARGE.get());
|
||||||
AntarchyObjects.setDorrieInventoryMenu(AntarchyForgeMisc.DORRIE_INVENTORY_MENU);
|
AntarchyObjects.setDorrieInventoryMenu(AntarchyForgeMisc.DORRIE_INVENTORY_MENU);
|
||||||
AntarchyObjects.setCritterCage(() -> AntarchyForgeItems.CRITTER_CAGE.get());
|
AntarchyObjects.setCritterCage(() -> AntarchyForgeItems.CRITTER_CAGE.get());
|
||||||
AntarchyObjects.setCritterCageBlock(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK.get());
|
AntarchyObjects.setCritterCageBlock(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK.get());
|
||||||
|
|||||||
@@ -69,6 +69,12 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ForgeConfigSpec.DoubleValue JUMPY_BUG_CAMOUFLAGE_ALPHA;
|
private static final ForgeConfigSpec.DoubleValue JUMPY_BUG_CAMOUFLAGE_ALPHA;
|
||||||
|
|
||||||
|
|
||||||
|
// Emperor Scorpion
|
||||||
|
|
||||||
|
private static final ForgeConfigSpec.DoubleValue EMPEROR_SCORPION_DAMAGE_RANGE;
|
||||||
|
private static final ForgeConfigSpec.IntValue EMPEROR_SCORPION_MIN_DESPAWN_TICKS;
|
||||||
|
|
||||||
|
|
||||||
// Kraken
|
// Kraken
|
||||||
|
|
||||||
private static final ForgeConfigSpec.DoubleValue KRAKEN_HEALTH;
|
private static final ForgeConfigSpec.DoubleValue KRAKEN_HEALTH;
|
||||||
@@ -77,6 +83,8 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ForgeConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED;
|
private static final ForgeConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED;
|
||||||
private static final ForgeConfigSpec.BooleanValue KRAKEN_MASS_SPAWN_ENABLED;
|
private static final ForgeConfigSpec.BooleanValue KRAKEN_MASS_SPAWN_ENABLED;
|
||||||
private static final ForgeConfigSpec.BooleanValue KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON;
|
private static final ForgeConfigSpec.BooleanValue KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue KRAKEN_FOLLOW_RANGE;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue KRAKEN_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Brutalfly
|
// Brutalfly
|
||||||
@@ -84,6 +92,7 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_HEALTH;
|
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_HEALTH;
|
||||||
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE;
|
||||||
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue BRUTALFLY_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Mantis
|
// Mantis
|
||||||
@@ -103,6 +112,7 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ForgeConfigSpec.DoubleValue ALPHA_MANTIS_FLYING_SPEED;
|
private static final ForgeConfigSpec.DoubleValue ALPHA_MANTIS_FLYING_SPEED;
|
||||||
private static final ForgeConfigSpec.IntValue ALPHA_MANTIS_SUMMON_INTERVAL_TICKS;
|
private static final ForgeConfigSpec.IntValue ALPHA_MANTIS_SUMMON_INTERVAL_TICKS;
|
||||||
private static final ForgeConfigSpec.IntValue ALPHA_MANTIS_MAX_MINIONS;
|
private static final ForgeConfigSpec.IntValue ALPHA_MANTIS_MAX_MINIONS;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue ALPHA_MANTIS_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Rolly Polly
|
// Rolly Polly
|
||||||
@@ -185,6 +195,7 @@ public final class AntarchyMobsConfig {
|
|||||||
// Toreterror
|
// Toreterror
|
||||||
|
|
||||||
private static final ForgeConfigSpec.DoubleValue TORETERROR_HEALTH;
|
private static final ForgeConfigSpec.DoubleValue TORETERROR_HEALTH;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue TORETERROR_DAMAGE_RANGE;
|
||||||
private static final ForgeConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_DAMAGE;
|
||||||
private static final ForgeConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_KNOCKBACK;
|
private static final ForgeConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_KNOCKBACK;
|
||||||
private static final ForgeConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE;
|
||||||
@@ -247,6 +258,7 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_HEALTH;
|
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_HEALTH;
|
||||||
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_ATTACK_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_ATTACK_DAMAGE;
|
||||||
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_CHARGE_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_CHARGE_DAMAGE;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue HERCULES_BEETLE_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Lucid
|
// Lucid
|
||||||
@@ -398,6 +410,18 @@ public final class AntarchyMobsConfig {
|
|||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
|
// Emperor Scorpion
|
||||||
|
|
||||||
|
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);
|
||||||
|
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);
|
||||||
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
// Kraken
|
// Kraken
|
||||||
|
|
||||||
b.push("kraken");
|
b.push("kraken");
|
||||||
@@ -407,6 +431,8 @@ public final class AntarchyMobsConfig {
|
|||||||
KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true);
|
KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true);
|
||||||
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
@@ -416,6 +442,7 @@ public final class AntarchyMobsConfig {
|
|||||||
BRUTALFLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 200.0D, 1.0D, 32768.0D);
|
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
@@ -439,6 +466,7 @@ public final class AntarchyMobsConfig {
|
|||||||
ALPHA_MANTIS_FLYING_SPEED = b.comment("Base flying speed.") .defineInRange("flyingSpeed", 0.77D, 0.0D, 10.0D);
|
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
@@ -612,10 +640,12 @@ public final class AntarchyMobsConfig {
|
|||||||
HERCULES_BEETLE_HEALTH = b.comment("Base max health.").defineInRange("health", 500.0D, 1.0D, 32768.0D);
|
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("toreterror");
|
b.push("toreterror");
|
||||||
TORETERROR_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D);
|
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_JUMP_ATTACK_DAMAGE = b.comment("Damage dealt by the jump shockwave.").defineInRange("jumpAttackDamage", 14.0D, 0.0D, 1024.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_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);
|
TORETERROR_SPIN_DAMAGE = b.comment("Damage per spin-attack tick.").defineInRange("spinDamage", 8.0D, 0.0D, 1024.0D);
|
||||||
@@ -686,16 +716,22 @@ public final class AntarchyMobsConfig {
|
|||||||
static double jumpyBugLatchDamage() { return JUMPY_BUG_LATCH_DAMAGE.get(); }
|
static double jumpyBugLatchDamage() { return JUMPY_BUG_LATCH_DAMAGE.get(); }
|
||||||
static double jumpyBugCamouflageAlpha() { return JUMPY_BUG_CAMOUFLAGE_ALPHA.get(); }
|
static double jumpyBugCamouflageAlpha() { return JUMPY_BUG_CAMOUFLAGE_ALPHA.get(); }
|
||||||
|
|
||||||
|
static double emperorScorpionDamageRange() { return EMPEROR_SCORPION_DAMAGE_RANGE.get(); }
|
||||||
|
static int emperorScorpionMinDespawnTicks() { return EMPEROR_SCORPION_MIN_DESPAWN_TICKS.get(); }
|
||||||
|
|
||||||
static double krakenHealth() { return KRAKEN_HEALTH.get(); }
|
static double krakenHealth() { return KRAKEN_HEALTH.get(); }
|
||||||
static double krakenAttackDamage() { return KRAKEN_ATTACK_DAMAGE.get(); }
|
static double krakenAttackDamage() { return KRAKEN_ATTACK_DAMAGE.get(); }
|
||||||
static double krakenProjectileDamageTakenMultiplier() { return KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER.get(); }
|
static double krakenProjectileDamageTakenMultiplier() { return KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER.get(); }
|
||||||
static boolean krakenSquidSpawnEnabled() { return KRAKEN_SQUID_SPAWN_ENABLED.get(); }
|
static boolean krakenSquidSpawnEnabled() { return KRAKEN_SQUID_SPAWN_ENABLED.get(); }
|
||||||
static boolean krakenMassSpawnEnabled() { return KRAKEN_MASS_SPAWN_ENABLED.get(); }
|
static boolean krakenMassSpawnEnabled() { return KRAKEN_MASS_SPAWN_ENABLED.get(); }
|
||||||
static boolean krakenRequireBadOmenToSummon() { return KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON.get(); }
|
static boolean krakenRequireBadOmenToSummon() { return KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON.get(); }
|
||||||
|
static double krakenFollowRange() { return KRAKEN_FOLLOW_RANGE.get(); }
|
||||||
|
static double krakenDamageRange() { return KRAKEN_DAMAGE_RANGE.get(); }
|
||||||
|
|
||||||
static double brutalflyHealth() { return BRUTALFLY_HEALTH.get(); }
|
static double brutalflyHealth() { return BRUTALFLY_HEALTH.get(); }
|
||||||
static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); }
|
static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); }
|
||||||
static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); }
|
static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); }
|
||||||
|
static double brutalflyDamageRange() { return BRUTALFLY_DAMAGE_RANGE.get(); }
|
||||||
|
|
||||||
static double mantisHealth() { return MANTIS_HEALTH.get(); }
|
static double mantisHealth() { return MANTIS_HEALTH.get(); }
|
||||||
static double mantisAttackDamage() { return MANTIS_ATTACK_DAMAGE.get(); }
|
static double mantisAttackDamage() { return MANTIS_ATTACK_DAMAGE.get(); }
|
||||||
@@ -708,6 +744,7 @@ public final class AntarchyMobsConfig {
|
|||||||
static double alphaMantisFlyingSpeed() { return ALPHA_MANTIS_FLYING_SPEED.get(); }
|
static double alphaMantisFlyingSpeed() { return ALPHA_MANTIS_FLYING_SPEED.get(); }
|
||||||
static int alphaMantisSummonIntervalTicks() { return ALPHA_MANTIS_SUMMON_INTERVAL_TICKS.get(); }
|
static int alphaMantisSummonIntervalTicks() { return ALPHA_MANTIS_SUMMON_INTERVAL_TICKS.get(); }
|
||||||
static int alphaMantisMaxMinions() { return ALPHA_MANTIS_MAX_MINIONS.get(); }
|
static int alphaMantisMaxMinions() { return ALPHA_MANTIS_MAX_MINIONS.get(); }
|
||||||
|
static double alphaMantisDamageRange() { return ALPHA_MANTIS_DAMAGE_RANGE.get(); }
|
||||||
static double rollyPollyHealth() { return ROLLY_POLLY_HEALTH.get(); }
|
static double rollyPollyHealth() { return ROLLY_POLLY_HEALTH.get(); }
|
||||||
static double rollyPollyMovementSpeed() { return ROLLY_POLLY_MOVEMENT_SPEED.get(); }
|
static double rollyPollyMovementSpeed() { return ROLLY_POLLY_MOVEMENT_SPEED.get(); }
|
||||||
static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); }
|
static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); }
|
||||||
@@ -767,6 +804,7 @@ public final class AntarchyMobsConfig {
|
|||||||
static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); }
|
static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); }
|
||||||
|
|
||||||
static double toreterrorHealth() { return TORETERROR_HEALTH.get(); }
|
static double toreterrorHealth() { return TORETERROR_HEALTH.get(); }
|
||||||
|
static double toreterrorDamageRange() { return TORETERROR_DAMAGE_RANGE.get(); }
|
||||||
static double toreterrorJumpAttackDamage() { return TORETERROR_JUMP_ATTACK_DAMAGE.get(); }
|
static double toreterrorJumpAttackDamage() { return TORETERROR_JUMP_ATTACK_DAMAGE.get(); }
|
||||||
static double toreterrorJumpAttackKnockback() { return TORETERROR_JUMP_ATTACK_KNOCKBACK.get(); }
|
static double toreterrorJumpAttackKnockback() { return TORETERROR_JUMP_ATTACK_KNOCKBACK.get(); }
|
||||||
static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); }
|
static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); }
|
||||||
@@ -806,4 +844,5 @@ public final class AntarchyMobsConfig {
|
|||||||
static double herculesBeetleHealth() { return HERCULES_BEETLE_HEALTH.get(); }
|
static double herculesBeetleHealth() { return HERCULES_BEETLE_HEALTH.get(); }
|
||||||
static double herculesBeetleAttackDamage() { return HERCULES_BEETLE_ATTACK_DAMAGE.get(); }
|
static double herculesBeetleAttackDamage() { return HERCULES_BEETLE_ATTACK_DAMAGE.get(); }
|
||||||
static double herculesBeetleChargeDamage() { return HERCULES_BEETLE_CHARGE_DAMAGE.get(); }
|
static double herculesBeetleChargeDamage() { return HERCULES_BEETLE_CHARGE_DAMAGE.get(); }
|
||||||
|
static double herculesBeetleDamageRange() { return HERCULES_BEETLE_DAMAGE_RANGE.get(); }
|
||||||
}
|
}
|
||||||
@@ -88,14 +88,16 @@ public final class AntarchyToolsConfig {
|
|||||||
private static final ForgeConfigSpec.BooleanValue KRAKENS_GRASP_INNATE_LOYALTY;
|
private static final ForgeConfigSpec.BooleanValue KRAKENS_GRASP_INNATE_LOYALTY;
|
||||||
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_INNATE_LOYALTY_LEVEL;
|
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_INNATE_LOYALTY_LEVEL;
|
||||||
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_DURATION_TICKS;
|
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_DURATION_TICKS;
|
||||||
private static final ForgeConfigSpec.DoubleValue KRAKENS_GRASP_TENTACLE_DAMAGE;
|
|
||||||
private static final ForgeConfigSpec.DoubleValue KRAKENS_GRASP_TENTACLE_RADIUS;
|
private static final ForgeConfigSpec.DoubleValue KRAKENS_GRASP_TENTACLE_RADIUS;
|
||||||
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_DAMAGE_INTERVAL_TICKS;
|
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER;
|
||||||
|
private static final ForgeConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS;
|
||||||
private static final ForgeConfigSpec.IntValue BIG_BERTHA_BASILISK_PARALYZE_DURATION_TICKS;
|
private static final ForgeConfigSpec.IntValue BIG_BERTHA_BASILISK_PARALYZE_DURATION_TICKS;
|
||||||
private static final ForgeConfigSpec.IntValue BIG_BERTHA_KRAKEN_SLOW_TICKS;
|
private static final ForgeConfigSpec.IntValue BIG_BERTHA_KRAKEN_SLOW_TICKS;
|
||||||
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_BASILISK_COOLDOWN_SECONDS;
|
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_BASILISK_COOLDOWN_SECONDS;
|
||||||
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS;
|
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS;
|
||||||
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT;
|
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT;
|
||||||
|
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT;
|
||||||
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_BASE_DAMAGE;
|
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_BASE_DAMAGE;
|
||||||
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS;
|
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS;
|
||||||
private static final ForgeConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS;
|
private static final ForgeConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS;
|
||||||
@@ -321,6 +323,8 @@ public final class AntarchyToolsConfig {
|
|||||||
BIG_BERTHA_BASILISK_COOLDOWN_SECONDS = b.comment("Cooldown in seconds after using Basilisk mode's right-click paralyze.") .defineInRange("basiliskModeCooldownSeconds", 7.0D, 0.0D, 3600.0D);
|
BIG_BERTHA_BASILISK_COOLDOWN_SECONDS = b.comment("Cooldown in seconds after using Basilisk mode's right-click paralyze.") .defineInRange("basiliskModeCooldownSeconds", 7.0D, 0.0D, 3600.0D);
|
||||||
BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS = b.comment("How long Lucid mode's inversion lasts on a target, in seconds.") .defineInRange("lucidModeInvertedDurationSeconds", 3.0D, 0.0D, 3600.0D);
|
BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS = b.comment("How long Lucid mode's inversion lasts on a target, in seconds.") .defineInRange("lucidModeInvertedDurationSeconds", 3.0D, 0.0D, 3600.0D);
|
||||||
BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Lucid mode while the wielder is inverted.") .defineInRange("lucidModeInvertedDamageBonusPercent", 25.0D, 0.0D, 1000.0D);
|
BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Lucid mode while the wielder is inverted.") .defineInRange("lucidModeInvertedDamageBonusPercent", 25.0D, 0.0D, 1000.0D);
|
||||||
|
BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent dealt while no boss mode is selected (the default mode).").defineInRange("noneModeDamageBonusPercent", 15.0D, 0.0D, 1000.0D);
|
||||||
|
BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Nightmare mode hits.") .defineInRange("nightmareModeDamageBonusPercent", 30.0D, 0.0D, 1000.0D);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("attitudeAdjuster");
|
b.push("attitudeAdjuster");
|
||||||
@@ -336,9 +340,9 @@ public final class AntarchyToolsConfig {
|
|||||||
KRAKENS_GRASP_INNATE_LOYALTY = b.comment("Whether Kraken's Grasp automatically returns to its thrower like an enchanted Loyalty trident.").define("innateLoyalty", true);
|
KRAKENS_GRASP_INNATE_LOYALTY = b.comment("Whether Kraken's Grasp automatically returns to its thrower like an enchanted Loyalty trident.").define("innateLoyalty", true);
|
||||||
KRAKENS_GRASP_INNATE_LOYALTY_LEVEL = b.comment("Effective Loyalty level used for the innate return, from 1 to 3.") .defineInRange("innateLoyaltyLevel", 3, 1, 3);
|
KRAKENS_GRASP_INNATE_LOYALTY_LEVEL = b.comment("Effective Loyalty level used for the innate return, from 1 to 3.") .defineInRange("innateLoyaltyLevel", 3, 1, 3);
|
||||||
KRAKENS_GRASP_TENTACLE_DURATION_TICKS = b.comment("How long a summoned tentacle lasts, in ticks.") .defineInRange("tentacleDurationTicks", 100, 1, 72000);
|
KRAKENS_GRASP_TENTACLE_DURATION_TICKS = b.comment("How long a summoned tentacle lasts, in ticks.") .defineInRange("tentacleDurationTicks", 100, 1, 72000);
|
||||||
KRAKENS_GRASP_TENTACLE_DAMAGE = b.comment("Damage a tentacle deals per damage interval to nearby entities.") .defineInRange("tentacleDamage", 3.0D, 0.0D, 4096.0D);
|
KRAKENS_GRASP_TENTACLE_RADIUS = b.comment("Radius in blocks around a tentacle that it can grab and slow.") .defineInRange("tentacleRadius", 3.0D, 0.0D, 32.0D);
|
||||||
KRAKENS_GRASP_TENTACLE_RADIUS = b.comment("Radius in blocks around a tentacle that it can grab and damage.") .defineInRange("tentacleRadius", 3.0D, 0.0D, 32.0D);
|
KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER = b.comment("Slowness amplifier applied to entities held by a tentacle (0 = Slowness I).").defineInRange("tentacleSlownessAmplifier", 8, 0, 255);
|
||||||
KRAKENS_GRASP_TENTACLE_DAMAGE_INTERVAL_TICKS = b.comment("How often, in ticks, a tentacle damages nearby entities.") .defineInRange("tentacleDamageIntervalTicks", 20, 1, 2000);
|
KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS = b.comment("How often, in ticks, a tentacle refreshes its slowness effect on nearby entities. Kept low so the effect fades quickly once an entity leaves.").defineInRange("tentacleSlownessRefreshTicks", 5, 1, 2000);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("scorpionWhip");
|
b.push("scorpionWhip");
|
||||||
@@ -593,6 +597,8 @@ public final class AntarchyToolsConfig {
|
|||||||
static double bigBerthaBasiliskCooldownSeconds() { return BIG_BERTHA_BASILISK_COOLDOWN_SECONDS.get(); }
|
static double bigBerthaBasiliskCooldownSeconds() { return BIG_BERTHA_BASILISK_COOLDOWN_SECONDS.get(); }
|
||||||
static double bigBerthaLucidInvertedDurationSeconds() { return BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS.get(); }
|
static double bigBerthaLucidInvertedDurationSeconds() { return BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS.get(); }
|
||||||
static double bigBerthaLucidInvertedDamageBonusPercent(){ return BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT.get(); }
|
static double bigBerthaLucidInvertedDamageBonusPercent(){ return BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT.get(); }
|
||||||
|
static double bigBerthaNoneModeDamageBonusPercent() { return BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT.get(); }
|
||||||
|
static double bigBerthaNightmareDamageBonusPercent() { return BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT.get(); }
|
||||||
|
|
||||||
static double krakensGraspAttackDamage() { return KRAKENS_GRASP_ATTACK_DAMAGE.get(); }
|
static double krakensGraspAttackDamage() { return KRAKENS_GRASP_ATTACK_DAMAGE.get(); }
|
||||||
static double krakensGraspAttackSpeed() { return KRAKENS_GRASP_ATTACK_SPEED.get(); }
|
static double krakensGraspAttackSpeed() { return KRAKENS_GRASP_ATTACK_SPEED.get(); }
|
||||||
@@ -601,9 +607,9 @@ public final class AntarchyToolsConfig {
|
|||||||
static boolean krakensGraspInnateLoyalty() { return KRAKENS_GRASP_INNATE_LOYALTY.get(); }
|
static boolean krakensGraspInnateLoyalty() { return KRAKENS_GRASP_INNATE_LOYALTY.get(); }
|
||||||
static int krakensGraspInnateLoyaltyLevel() { return KRAKENS_GRASP_INNATE_LOYALTY_LEVEL.get(); }
|
static int krakensGraspInnateLoyaltyLevel() { return KRAKENS_GRASP_INNATE_LOYALTY_LEVEL.get(); }
|
||||||
static int krakensGraspTentacleDurationTicks() { return KRAKENS_GRASP_TENTACLE_DURATION_TICKS.get(); }
|
static int krakensGraspTentacleDurationTicks() { return KRAKENS_GRASP_TENTACLE_DURATION_TICKS.get(); }
|
||||||
static double krakensGraspTentacleDamage() { return KRAKENS_GRASP_TENTACLE_DAMAGE.get(); }
|
|
||||||
static double krakensGraspTentacleRadius() { return KRAKENS_GRASP_TENTACLE_RADIUS.get(); }
|
static double krakensGraspTentacleRadius() { return KRAKENS_GRASP_TENTACLE_RADIUS.get(); }
|
||||||
static int krakensGraspTentacleDamageIntervalTicks() { return KRAKENS_GRASP_TENTACLE_DAMAGE_INTERVAL_TICKS.get(); }
|
static int krakensGraspTentacleSlownessAmplifier() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER.get(); }
|
||||||
|
static int krakensGraspTentacleSlownessRefreshTicks() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS.get(); }
|
||||||
static double scorpionWhipBaseDamage() { return SCORPION_WHIP_BASE_DAMAGE.get(); }
|
static double scorpionWhipBaseDamage() { return SCORPION_WHIP_BASE_DAMAGE.get(); }
|
||||||
static double scorpionWhipReachBonus() { return SCORPION_WHIP_REACH_BONUS.get(); }
|
static double scorpionWhipReachBonus() { return SCORPION_WHIP_REACH_BONUS.get(); }
|
||||||
static int scorpionWhipPoisonDurationTicks() { return SCORPION_WHIP_POISON_DURATION_TICKS.get(); }
|
static int scorpionWhipPoisonDurationTicks() { return SCORPION_WHIP_POISON_DURATION_TICKS.get(); }
|
||||||
|
|||||||
+2
@@ -293,6 +293,8 @@ public final class AntarchyForgeClient {
|
|||||||
event.registerSpecial(AntarchyForgeMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
event.registerSpecial(AntarchyForgeMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
||||||
event.registerSpriteSet(AntarchyForgeMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
event.registerSpriteSet(AntarchyForgeMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
||||||
event.registerSpriteSet(AntarchyForgeMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
event.registerSpriteSet(AntarchyForgeMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
||||||
|
event.registerSpriteSet(AntarchyForgeMisc.LUCID_BOLT_IMPACT_SMALL.get(), LucidBoltImpactParticle.SmallProvider::new);
|
||||||
|
event.registerSpriteSet(AntarchyForgeMisc.LUCID_BOLT_IMPACT_LARGE.get(), LucidBoltImpactParticle.LargeProvider::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|||||||
+4
@@ -176,6 +176,10 @@ public final class AntarchyForgeMisc {
|
|||||||
AntarchyForgeMisc::simpleParticleType);
|
AntarchyForgeMisc::simpleParticleType);
|
||||||
public static final RegistryObject<SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
public static final RegistryObject<SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
||||||
AntarchyForgeMisc::simpleParticleType);
|
AntarchyForgeMisc::simpleParticleType);
|
||||||
|
public static final RegistryObject<SimpleParticleType> LUCID_BOLT_IMPACT_SMALL = PARTICLE_TYPES.register("lucid_bolt_impact_small",
|
||||||
|
AntarchyForgeMisc::simpleParticleType);
|
||||||
|
public static final RegistryObject<SimpleParticleType> LUCID_BOLT_IMPACT_LARGE = PARTICLE_TYPES.register("lucid_bolt_impact_large",
|
||||||
|
AntarchyForgeMisc::simpleParticleType);
|
||||||
public static final RegistryObject<ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
public static final RegistryObject<ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
||||||
() -> particleType(InvertedGeyserBaseParticleOptions.deserializer()));
|
() -> particleType(InvertedGeyserBaseParticleOptions.deserializer()));
|
||||||
public static final RegistryObject<ParticleType<InvertedGeyserParticleOptions>> INVERTED_GEYSER_PLUME = PARTICLE_TYPES.register("inverted_geyser_plume",
|
public static final RegistryObject<ParticleType<InvertedGeyserParticleOptions>> INVERTED_GEYSER_PLUME = PARTICLE_TYPES.register("inverted_geyser_plume",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
"entity.MultipartEntityBridgeMixin",
|
"entity.MultipartEntityBridgeMixin",
|
||||||
"entity.MultipartEntityLevelRegistryMixin",
|
"entity.MultipartEntityLevelRegistryMixin",
|
||||||
"entity.ParalyzedMobFreezeMixin",
|
"entity.ParalyzedMobFreezeMixin",
|
||||||
|
"infinity.AmendmentRareOresMixin",
|
||||||
"infinity.ConfigGenInvocationMixin",
|
"infinity.ConfigGenInvocationMixin",
|
||||||
"item.BucketItemThoraxisWaterMixin",
|
"item.BucketItemThoraxisWaterMixin",
|
||||||
"level.ClientLevelPartEntitiesAccessor",
|
"level.ClientLevelPartEntitiesAccessor",
|
||||||
|
|||||||
+13
-2
@@ -101,16 +101,22 @@ public final class AntarchyConfigModuleNeoforge {
|
|||||||
AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage());
|
AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage());
|
||||||
AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha());
|
AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha());
|
||||||
|
|
||||||
|
AntarchySettings.setEmperorScorpionDamageRange(AntarchyMobsConfig.emperorScorpionDamageRange());
|
||||||
|
AntarchySettings.setEmperorScorpionMinDespawnTicks(AntarchyMobsConfig.emperorScorpionMinDespawnTicks());
|
||||||
|
|
||||||
AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth());
|
AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth());
|
||||||
AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage());
|
AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage());
|
||||||
AntarchySettings.setKrakenProjectileDamageTakenMultiplier(AntarchyMobsConfig.krakenProjectileDamageTakenMultiplier());
|
AntarchySettings.setKrakenProjectileDamageTakenMultiplier(AntarchyMobsConfig.krakenProjectileDamageTakenMultiplier());
|
||||||
AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled());
|
AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled());
|
||||||
AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled());
|
AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled());
|
||||||
AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon());
|
AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon());
|
||||||
|
AntarchySettings.setKrakenFollowRange(AntarchyMobsConfig.krakenFollowRange());
|
||||||
|
AntarchySettings.setKrakenDamageRange(AntarchyMobsConfig.krakenDamageRange());
|
||||||
|
|
||||||
AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth());
|
AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth());
|
||||||
AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage());
|
AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage());
|
||||||
AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage());
|
AntarchySettings.setBrutalflySpitDamage(AntarchyMobsConfig.brutalflySpitDamage());
|
||||||
|
AntarchySettings.setBrutalflyDamageRange(AntarchyMobsConfig.brutalflyDamageRange());
|
||||||
|
|
||||||
AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth());
|
AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth());
|
||||||
AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage());
|
AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage());
|
||||||
@@ -124,6 +130,7 @@ public final class AntarchyConfigModuleNeoforge {
|
|||||||
AntarchySettings.setAlphaMantisFlyingSpeed(AntarchyMobsConfig.alphaMantisFlyingSpeed());
|
AntarchySettings.setAlphaMantisFlyingSpeed(AntarchyMobsConfig.alphaMantisFlyingSpeed());
|
||||||
AntarchySettings.setAlphaMantisSummonIntervalTicks(AntarchyMobsConfig.alphaMantisSummonIntervalTicks());
|
AntarchySettings.setAlphaMantisSummonIntervalTicks(AntarchyMobsConfig.alphaMantisSummonIntervalTicks());
|
||||||
AntarchySettings.setAlphaMantisMaxMinions(AntarchyMobsConfig.alphaMantisMaxMinions());
|
AntarchySettings.setAlphaMantisMaxMinions(AntarchyMobsConfig.alphaMantisMaxMinions());
|
||||||
|
AntarchySettings.setAlphaMantisDamageRange(AntarchyMobsConfig.alphaMantisDamageRange());
|
||||||
|
|
||||||
AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth());
|
AntarchySettings.setRollyPollyHealth(AntarchyMobsConfig.rollyPollyHealth());
|
||||||
AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed());
|
AntarchySettings.setRollyPollyMovementSpeed(AntarchyMobsConfig.rollyPollyMovementSpeed());
|
||||||
@@ -190,6 +197,7 @@ public final class AntarchyConfigModuleNeoforge {
|
|||||||
AntarchySettings.setDreadHallucinationMobMaxInterval(AntarchyMobsConfig.dreadHallucinationMobMaxInterval());
|
AntarchySettings.setDreadHallucinationMobMaxInterval(AntarchyMobsConfig.dreadHallucinationMobMaxInterval());
|
||||||
|
|
||||||
AntarchySettings.setToreterrorHealth(AntarchyMobsConfig.toreterrorHealth());
|
AntarchySettings.setToreterrorHealth(AntarchyMobsConfig.toreterrorHealth());
|
||||||
|
AntarchySettings.setToreterrorDamageRange(AntarchyMobsConfig.toreterrorDamageRange());
|
||||||
AntarchySettings.setToreterrorJumpAttackDamage(AntarchyMobsConfig.toreterrorJumpAttackDamage());
|
AntarchySettings.setToreterrorJumpAttackDamage(AntarchyMobsConfig.toreterrorJumpAttackDamage());
|
||||||
AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback());
|
AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback());
|
||||||
AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage());
|
AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage());
|
||||||
@@ -220,6 +228,7 @@ public final class AntarchyConfigModuleNeoforge {
|
|||||||
AntarchySettings.setHerculesBeetleHealth(AntarchyMobsConfig.herculesBeetleHealth());
|
AntarchySettings.setHerculesBeetleHealth(AntarchyMobsConfig.herculesBeetleHealth());
|
||||||
AntarchySettings.setHerculesBeetleAttackDamage(AntarchyMobsConfig.herculesBeetleAttackDamage());
|
AntarchySettings.setHerculesBeetleAttackDamage(AntarchyMobsConfig.herculesBeetleAttackDamage());
|
||||||
AntarchySettings.setHerculesBeetleChargeDamage(AntarchyMobsConfig.herculesBeetleChargeDamage());
|
AntarchySettings.setHerculesBeetleChargeDamage(AntarchyMobsConfig.herculesBeetleChargeDamage());
|
||||||
|
AntarchySettings.setHerculesBeetleDamageRange(AntarchyMobsConfig.herculesBeetleDamageRange());
|
||||||
AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth());
|
AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth());
|
||||||
AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth());
|
AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth());
|
||||||
}
|
}
|
||||||
@@ -282,6 +291,8 @@ public final class AntarchyConfigModuleNeoforge {
|
|||||||
AntarchySettings.setBigBerthaBasiliskCooldownSeconds(AntarchyToolsConfig.bigBerthaBasiliskCooldownSeconds());
|
AntarchySettings.setBigBerthaBasiliskCooldownSeconds(AntarchyToolsConfig.bigBerthaBasiliskCooldownSeconds());
|
||||||
AntarchySettings.setBigBerthaLucidInvertedDurationSeconds(AntarchyToolsConfig.bigBerthaLucidInvertedDurationSeconds());
|
AntarchySettings.setBigBerthaLucidInvertedDurationSeconds(AntarchyToolsConfig.bigBerthaLucidInvertedDurationSeconds());
|
||||||
AntarchySettings.setBigBerthaLucidInvertedDamageBonusPercent(AntarchyToolsConfig.bigBerthaLucidInvertedDamageBonusPercent());
|
AntarchySettings.setBigBerthaLucidInvertedDamageBonusPercent(AntarchyToolsConfig.bigBerthaLucidInvertedDamageBonusPercent());
|
||||||
|
AntarchySettings.setBigBerthaNoneModeDamageBonusPercent(AntarchyToolsConfig.bigBerthaNoneModeDamageBonusPercent());
|
||||||
|
AntarchySettings.setBigBerthaNightmareDamageBonusPercent(AntarchyToolsConfig.bigBerthaNightmareDamageBonusPercent());
|
||||||
AntarchySettings.setKrakensGraspAttackDamage(AntarchyToolsConfig.krakensGraspAttackDamage());
|
AntarchySettings.setKrakensGraspAttackDamage(AntarchyToolsConfig.krakensGraspAttackDamage());
|
||||||
AntarchySettings.setKrakensGraspAttackSpeed(AntarchyToolsConfig.krakensGraspAttackSpeed());
|
AntarchySettings.setKrakensGraspAttackSpeed(AntarchyToolsConfig.krakensGraspAttackSpeed());
|
||||||
AntarchySettings.setKrakensGraspThrownDamage(AntarchyToolsConfig.krakensGraspThrownDamage());
|
AntarchySettings.setKrakensGraspThrownDamage(AntarchyToolsConfig.krakensGraspThrownDamage());
|
||||||
@@ -289,9 +300,9 @@ public final class AntarchyConfigModuleNeoforge {
|
|||||||
AntarchySettings.setKrakensGraspInnateLoyalty(AntarchyToolsConfig.krakensGraspInnateLoyalty());
|
AntarchySettings.setKrakensGraspInnateLoyalty(AntarchyToolsConfig.krakensGraspInnateLoyalty());
|
||||||
AntarchySettings.setKrakensGraspInnateLoyaltyLevel(AntarchyToolsConfig.krakensGraspInnateLoyaltyLevel());
|
AntarchySettings.setKrakensGraspInnateLoyaltyLevel(AntarchyToolsConfig.krakensGraspInnateLoyaltyLevel());
|
||||||
AntarchySettings.setKrakensGraspTentacleDurationTicks(AntarchyToolsConfig.krakensGraspTentacleDurationTicks());
|
AntarchySettings.setKrakensGraspTentacleDurationTicks(AntarchyToolsConfig.krakensGraspTentacleDurationTicks());
|
||||||
AntarchySettings.setKrakensGraspTentacleDamage(AntarchyToolsConfig.krakensGraspTentacleDamage());
|
|
||||||
AntarchySettings.setKrakensGraspTentacleRadius(AntarchyToolsConfig.krakensGraspTentacleRadius());
|
AntarchySettings.setKrakensGraspTentacleRadius(AntarchyToolsConfig.krakensGraspTentacleRadius());
|
||||||
AntarchySettings.setKrakensGraspTentacleDamageIntervalTicks(AntarchyToolsConfig.krakensGraspTentacleDamageIntervalTicks());
|
AntarchySettings.setKrakensGraspTentacleSlownessAmplifier(AntarchyToolsConfig.krakensGraspTentacleSlownessAmplifier());
|
||||||
|
AntarchySettings.setKrakensGraspTentacleSlownessRefreshTicks(AntarchyToolsConfig.krakensGraspTentacleSlownessRefreshTicks());
|
||||||
AntarchySettings.setScorpionWhipBaseDamage(AntarchyToolsConfig.scorpionWhipBaseDamage());
|
AntarchySettings.setScorpionWhipBaseDamage(AntarchyToolsConfig.scorpionWhipBaseDamage());
|
||||||
AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus());
|
AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus());
|
||||||
AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks());
|
AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks());
|
||||||
|
|||||||
+39
@@ -69,6 +69,12 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ModConfigSpec.DoubleValue JUMPY_BUG_CAMOUFLAGE_ALPHA;
|
private static final ModConfigSpec.DoubleValue JUMPY_BUG_CAMOUFLAGE_ALPHA;
|
||||||
|
|
||||||
|
|
||||||
|
// Emperor Scorpion
|
||||||
|
|
||||||
|
private static final ModConfigSpec.DoubleValue EMPEROR_SCORPION_DAMAGE_RANGE;
|
||||||
|
private static final ModConfigSpec.IntValue EMPEROR_SCORPION_MIN_DESPAWN_TICKS;
|
||||||
|
|
||||||
|
|
||||||
// Kraken
|
// Kraken
|
||||||
|
|
||||||
private static final ModConfigSpec.DoubleValue KRAKEN_HEALTH;
|
private static final ModConfigSpec.DoubleValue KRAKEN_HEALTH;
|
||||||
@@ -77,6 +83,8 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ModConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED;
|
private static final ModConfigSpec.BooleanValue KRAKEN_SQUID_SPAWN_ENABLED;
|
||||||
private static final ModConfigSpec.BooleanValue KRAKEN_MASS_SPAWN_ENABLED;
|
private static final ModConfigSpec.BooleanValue KRAKEN_MASS_SPAWN_ENABLED;
|
||||||
private static final ModConfigSpec.BooleanValue KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON;
|
private static final ModConfigSpec.BooleanValue KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON;
|
||||||
|
private static final ModConfigSpec.DoubleValue KRAKEN_FOLLOW_RANGE;
|
||||||
|
private static final ModConfigSpec.DoubleValue KRAKEN_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Brutalfly
|
// Brutalfly
|
||||||
@@ -84,6 +92,7 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ModConfigSpec.DoubleValue BRUTALFLY_HEALTH;
|
private static final ModConfigSpec.DoubleValue BRUTALFLY_HEALTH;
|
||||||
private static final ModConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE;
|
private static final ModConfigSpec.DoubleValue BRUTALFLY_SWIPE_DAMAGE;
|
||||||
private static final ModConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE;
|
private static final ModConfigSpec.DoubleValue BRUTALFLY_SPIT_DAMAGE;
|
||||||
|
private static final ModConfigSpec.DoubleValue BRUTALFLY_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Mantis
|
// Mantis
|
||||||
@@ -103,6 +112,7 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_FLYING_SPEED;
|
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_FLYING_SPEED;
|
||||||
private static final ModConfigSpec.IntValue ALPHA_MANTIS_SUMMON_INTERVAL_TICKS;
|
private static final ModConfigSpec.IntValue ALPHA_MANTIS_SUMMON_INTERVAL_TICKS;
|
||||||
private static final ModConfigSpec.IntValue ALPHA_MANTIS_MAX_MINIONS;
|
private static final ModConfigSpec.IntValue ALPHA_MANTIS_MAX_MINIONS;
|
||||||
|
private static final ModConfigSpec.DoubleValue ALPHA_MANTIS_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Rolly Polly
|
// Rolly Polly
|
||||||
@@ -185,6 +195,7 @@ public final class AntarchyMobsConfig {
|
|||||||
// Toreterror
|
// Toreterror
|
||||||
|
|
||||||
private static final ModConfigSpec.DoubleValue TORETERROR_HEALTH;
|
private static final ModConfigSpec.DoubleValue TORETERROR_HEALTH;
|
||||||
|
private static final ModConfigSpec.DoubleValue TORETERROR_DAMAGE_RANGE;
|
||||||
private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_DAMAGE;
|
private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_DAMAGE;
|
||||||
private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_KNOCKBACK;
|
private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_KNOCKBACK;
|
||||||
private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE;
|
private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE;
|
||||||
@@ -247,6 +258,7 @@ public final class AntarchyMobsConfig {
|
|||||||
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_HEALTH;
|
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_HEALTH;
|
||||||
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_ATTACK_DAMAGE;
|
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_ATTACK_DAMAGE;
|
||||||
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_CHARGE_DAMAGE;
|
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_CHARGE_DAMAGE;
|
||||||
|
private static final ModConfigSpec.DoubleValue HERCULES_BEETLE_DAMAGE_RANGE;
|
||||||
|
|
||||||
|
|
||||||
// Lucid
|
// Lucid
|
||||||
@@ -398,6 +410,18 @@ public final class AntarchyMobsConfig {
|
|||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
|
// Emperor Scorpion
|
||||||
|
|
||||||
|
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);
|
||||||
|
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);
|
||||||
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
// Kraken
|
// Kraken
|
||||||
|
|
||||||
b.push("kraken");
|
b.push("kraken");
|
||||||
@@ -407,6 +431,8 @@ public final class AntarchyMobsConfig {
|
|||||||
KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true);
|
KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true);
|
||||||
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
@@ -416,6 +442,7 @@ public final class AntarchyMobsConfig {
|
|||||||
BRUTALFLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 200.0D, 1.0D, 32768.0D);
|
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
@@ -439,6 +466,7 @@ public final class AntarchyMobsConfig {
|
|||||||
ALPHA_MANTIS_FLYING_SPEED = b.comment("Base flying speed.") .defineInRange("flyingSpeed", 0.77D, 0.0D, 10.0D);
|
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
@@ -612,10 +640,12 @@ public final class AntarchyMobsConfig {
|
|||||||
HERCULES_BEETLE_HEALTH = b.comment("Base max health.").defineInRange("health", 500.0D, 1.0D, 32768.0D);
|
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_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_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);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("toreterror");
|
b.push("toreterror");
|
||||||
TORETERROR_HEALTH = b.comment("Base max health.").defineInRange("health", 300.0D, 1.0D, 32768.0D);
|
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_JUMP_ATTACK_DAMAGE = b.comment("Damage dealt by the jump shockwave.").defineInRange("jumpAttackDamage", 14.0D, 0.0D, 1024.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_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);
|
TORETERROR_SPIN_DAMAGE = b.comment("Damage per spin-attack tick.").defineInRange("spinDamage", 8.0D, 0.0D, 1024.0D);
|
||||||
@@ -686,16 +716,22 @@ public final class AntarchyMobsConfig {
|
|||||||
static double jumpyBugLatchDamage() { return JUMPY_BUG_LATCH_DAMAGE.get(); }
|
static double jumpyBugLatchDamage() { return JUMPY_BUG_LATCH_DAMAGE.get(); }
|
||||||
static double jumpyBugCamouflageAlpha() { return JUMPY_BUG_CAMOUFLAGE_ALPHA.get(); }
|
static double jumpyBugCamouflageAlpha() { return JUMPY_BUG_CAMOUFLAGE_ALPHA.get(); }
|
||||||
|
|
||||||
|
static double emperorScorpionDamageRange() { return EMPEROR_SCORPION_DAMAGE_RANGE.get(); }
|
||||||
|
static int emperorScorpionMinDespawnTicks() { return EMPEROR_SCORPION_MIN_DESPAWN_TICKS.get(); }
|
||||||
|
|
||||||
static double krakenHealth() { return KRAKEN_HEALTH.get(); }
|
static double krakenHealth() { return KRAKEN_HEALTH.get(); }
|
||||||
static double krakenAttackDamage() { return KRAKEN_ATTACK_DAMAGE.get(); }
|
static double krakenAttackDamage() { return KRAKEN_ATTACK_DAMAGE.get(); }
|
||||||
static double krakenProjectileDamageTakenMultiplier() { return KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER.get(); }
|
static double krakenProjectileDamageTakenMultiplier() { return KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER.get(); }
|
||||||
static boolean krakenSquidSpawnEnabled() { return KRAKEN_SQUID_SPAWN_ENABLED.get(); }
|
static boolean krakenSquidSpawnEnabled() { return KRAKEN_SQUID_SPAWN_ENABLED.get(); }
|
||||||
static boolean krakenMassSpawnEnabled() { return KRAKEN_MASS_SPAWN_ENABLED.get(); }
|
static boolean krakenMassSpawnEnabled() { return KRAKEN_MASS_SPAWN_ENABLED.get(); }
|
||||||
static boolean krakenRequireBadOmenToSummon() { return KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON.get(); }
|
static boolean krakenRequireBadOmenToSummon() { return KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON.get(); }
|
||||||
|
static double krakenFollowRange() { return KRAKEN_FOLLOW_RANGE.get(); }
|
||||||
|
static double krakenDamageRange() { return KRAKEN_DAMAGE_RANGE.get(); }
|
||||||
|
|
||||||
static double brutalflyHealth() { return BRUTALFLY_HEALTH.get(); }
|
static double brutalflyHealth() { return BRUTALFLY_HEALTH.get(); }
|
||||||
static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); }
|
static double brutalflySwipeDamage() { return BRUTALFLY_SWIPE_DAMAGE.get(); }
|
||||||
static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); }
|
static double brutalflySpitDamage() { return BRUTALFLY_SPIT_DAMAGE.get(); }
|
||||||
|
static double brutalflyDamageRange() { return BRUTALFLY_DAMAGE_RANGE.get(); }
|
||||||
|
|
||||||
static double mantisHealth() { return MANTIS_HEALTH.get(); }
|
static double mantisHealth() { return MANTIS_HEALTH.get(); }
|
||||||
static double mantisAttackDamage() { return MANTIS_ATTACK_DAMAGE.get(); }
|
static double mantisAttackDamage() { return MANTIS_ATTACK_DAMAGE.get(); }
|
||||||
@@ -708,6 +744,7 @@ public final class AntarchyMobsConfig {
|
|||||||
static double alphaMantisFlyingSpeed() { return ALPHA_MANTIS_FLYING_SPEED.get(); }
|
static double alphaMantisFlyingSpeed() { return ALPHA_MANTIS_FLYING_SPEED.get(); }
|
||||||
static int alphaMantisSummonIntervalTicks() { return ALPHA_MANTIS_SUMMON_INTERVAL_TICKS.get(); }
|
static int alphaMantisSummonIntervalTicks() { return ALPHA_MANTIS_SUMMON_INTERVAL_TICKS.get(); }
|
||||||
static int alphaMantisMaxMinions() { return ALPHA_MANTIS_MAX_MINIONS.get(); }
|
static int alphaMantisMaxMinions() { return ALPHA_MANTIS_MAX_MINIONS.get(); }
|
||||||
|
static double alphaMantisDamageRange() { return ALPHA_MANTIS_DAMAGE_RANGE.get(); }
|
||||||
static double rollyPollyHealth() { return ROLLY_POLLY_HEALTH.get(); }
|
static double rollyPollyHealth() { return ROLLY_POLLY_HEALTH.get(); }
|
||||||
static double rollyPollyMovementSpeed() { return ROLLY_POLLY_MOVEMENT_SPEED.get(); }
|
static double rollyPollyMovementSpeed() { return ROLLY_POLLY_MOVEMENT_SPEED.get(); }
|
||||||
static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); }
|
static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); }
|
||||||
@@ -767,6 +804,7 @@ public final class AntarchyMobsConfig {
|
|||||||
static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); }
|
static double lucidPearlInvertedDurationSeconds() { return LUCID_PEARL_INVERTED_DURATION_SECONDS.get(); }
|
||||||
|
|
||||||
static double toreterrorHealth() { return TORETERROR_HEALTH.get(); }
|
static double toreterrorHealth() { return TORETERROR_HEALTH.get(); }
|
||||||
|
static double toreterrorDamageRange() { return TORETERROR_DAMAGE_RANGE.get(); }
|
||||||
static double toreterrorJumpAttackDamage() { return TORETERROR_JUMP_ATTACK_DAMAGE.get(); }
|
static double toreterrorJumpAttackDamage() { return TORETERROR_JUMP_ATTACK_DAMAGE.get(); }
|
||||||
static double toreterrorJumpAttackKnockback() { return TORETERROR_JUMP_ATTACK_KNOCKBACK.get(); }
|
static double toreterrorJumpAttackKnockback() { return TORETERROR_JUMP_ATTACK_KNOCKBACK.get(); }
|
||||||
static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); }
|
static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); }
|
||||||
@@ -806,4 +844,5 @@ public final class AntarchyMobsConfig {
|
|||||||
static double herculesBeetleHealth() { return HERCULES_BEETLE_HEALTH.get(); }
|
static double herculesBeetleHealth() { return HERCULES_BEETLE_HEALTH.get(); }
|
||||||
static double herculesBeetleAttackDamage() { return HERCULES_BEETLE_ATTACK_DAMAGE.get(); }
|
static double herculesBeetleAttackDamage() { return HERCULES_BEETLE_ATTACK_DAMAGE.get(); }
|
||||||
static double herculesBeetleChargeDamage() { return HERCULES_BEETLE_CHARGE_DAMAGE.get(); }
|
static double herculesBeetleChargeDamage() { return HERCULES_BEETLE_CHARGE_DAMAGE.get(); }
|
||||||
|
static double herculesBeetleDamageRange() { return HERCULES_BEETLE_DAMAGE_RANGE.get(); }
|
||||||
}
|
}
|
||||||
@@ -390,6 +390,8 @@ public class AntarchyNeoforge {
|
|||||||
AntarchyObjects.setLumenFroglight(() -> AntarchyNeoforgeBlocks.LUMEN_FROGLIGHT.get());
|
AntarchyObjects.setLumenFroglight(() -> AntarchyNeoforgeBlocks.LUMEN_FROGLIGHT.get());
|
||||||
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyNeoforgeMisc.PEACH_LEAVES_PARTICLE.get());
|
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyNeoforgeMisc.PEACH_LEAVES_PARTICLE.get());
|
||||||
AntarchyObjects.setLotusPollen(() -> AntarchyNeoforgeMisc.LOTUS_POLLEN.get());
|
AntarchyObjects.setLotusPollen(() -> AntarchyNeoforgeMisc.LOTUS_POLLEN.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_SMALL.get());
|
||||||
|
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_LARGE.get());
|
||||||
AntarchyObjects.setDorrieInventoryMenu(AntarchyNeoforgeMisc.DORRIE_INVENTORY_MENU);
|
AntarchyObjects.setDorrieInventoryMenu(AntarchyNeoforgeMisc.DORRIE_INVENTORY_MENU);
|
||||||
AntarchyObjects.setCritterCage(() -> AntarchyNeoforgeItems.CRITTER_CAGE.get());
|
AntarchyObjects.setCritterCage(() -> AntarchyNeoforgeItems.CRITTER_CAGE.get());
|
||||||
AntarchyObjects.setCritterCageBlock(() -> AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK.get());
|
AntarchyObjects.setCritterCageBlock(() -> AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK.get());
|
||||||
|
|||||||
+13
-7
@@ -88,14 +88,16 @@ public final class AntarchyToolsConfig {
|
|||||||
private static final ModConfigSpec.BooleanValue KRAKENS_GRASP_INNATE_LOYALTY;
|
private static final ModConfigSpec.BooleanValue KRAKENS_GRASP_INNATE_LOYALTY;
|
||||||
private static final ModConfigSpec.IntValue KRAKENS_GRASP_INNATE_LOYALTY_LEVEL;
|
private static final ModConfigSpec.IntValue KRAKENS_GRASP_INNATE_LOYALTY_LEVEL;
|
||||||
private static final ModConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_DURATION_TICKS;
|
private static final ModConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_DURATION_TICKS;
|
||||||
private static final ModConfigSpec.DoubleValue KRAKENS_GRASP_TENTACLE_DAMAGE;
|
|
||||||
private static final ModConfigSpec.DoubleValue KRAKENS_GRASP_TENTACLE_RADIUS;
|
private static final ModConfigSpec.DoubleValue KRAKENS_GRASP_TENTACLE_RADIUS;
|
||||||
private static final ModConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_DAMAGE_INTERVAL_TICKS;
|
private static final ModConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER;
|
||||||
|
private static final ModConfigSpec.IntValue KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS;
|
||||||
private static final ModConfigSpec.IntValue BIG_BERTHA_BASILISK_PARALYZE_DURATION_TICKS;
|
private static final ModConfigSpec.IntValue BIG_BERTHA_BASILISK_PARALYZE_DURATION_TICKS;
|
||||||
private static final ModConfigSpec.IntValue BIG_BERTHA_KRAKEN_SLOW_TICKS;
|
private static final ModConfigSpec.IntValue BIG_BERTHA_KRAKEN_SLOW_TICKS;
|
||||||
private static final ModConfigSpec.DoubleValue BIG_BERTHA_BASILISK_COOLDOWN_SECONDS;
|
private static final ModConfigSpec.DoubleValue BIG_BERTHA_BASILISK_COOLDOWN_SECONDS;
|
||||||
private static final ModConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS;
|
private static final ModConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS;
|
||||||
private static final ModConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT;
|
private static final ModConfigSpec.DoubleValue BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT;
|
||||||
|
private static final ModConfigSpec.DoubleValue BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT;
|
||||||
|
private static final ModConfigSpec.DoubleValue BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT;
|
||||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_BASE_DAMAGE;
|
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_BASE_DAMAGE;
|
||||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS;
|
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS;
|
||||||
private static final ModConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS;
|
private static final ModConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS;
|
||||||
@@ -321,6 +323,8 @@ public final class AntarchyToolsConfig {
|
|||||||
BIG_BERTHA_BASILISK_COOLDOWN_SECONDS = b.comment("Cooldown in seconds after using Basilisk mode's right-click paralyze.") .defineInRange("basiliskModeCooldownSeconds", 7.0D, 0.0D, 3600.0D);
|
BIG_BERTHA_BASILISK_COOLDOWN_SECONDS = b.comment("Cooldown in seconds after using Basilisk mode's right-click paralyze.") .defineInRange("basiliskModeCooldownSeconds", 7.0D, 0.0D, 3600.0D);
|
||||||
BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS = b.comment("How long Lucid mode's inversion lasts on a target, in seconds.") .defineInRange("lucidModeInvertedDurationSeconds", 3.0D, 0.0D, 3600.0D);
|
BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS = b.comment("How long Lucid mode's inversion lasts on a target, in seconds.") .defineInRange("lucidModeInvertedDurationSeconds", 3.0D, 0.0D, 3600.0D);
|
||||||
BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Lucid mode while the wielder is inverted.") .defineInRange("lucidModeInvertedDamageBonusPercent", 25.0D, 0.0D, 1000.0D);
|
BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Lucid mode while the wielder is inverted.") .defineInRange("lucidModeInvertedDamageBonusPercent", 25.0D, 0.0D, 1000.0D);
|
||||||
|
BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent dealt while no boss mode is selected (the default mode).").defineInRange("noneModeDamageBonusPercent", 15.0D, 0.0D, 1000.0D);
|
||||||
|
BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Nightmare mode hits.") .defineInRange("nightmareModeDamageBonusPercent", 30.0D, 0.0D, 1000.0D);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("attitudeAdjuster");
|
b.push("attitudeAdjuster");
|
||||||
@@ -336,9 +340,9 @@ public final class AntarchyToolsConfig {
|
|||||||
KRAKENS_GRASP_INNATE_LOYALTY = b.comment("Whether Kraken's Grasp automatically returns to its thrower like an enchanted Loyalty trident.").define("innateLoyalty", true);
|
KRAKENS_GRASP_INNATE_LOYALTY = b.comment("Whether Kraken's Grasp automatically returns to its thrower like an enchanted Loyalty trident.").define("innateLoyalty", true);
|
||||||
KRAKENS_GRASP_INNATE_LOYALTY_LEVEL = b.comment("Effective Loyalty level used for the innate return, from 1 to 3.") .defineInRange("innateLoyaltyLevel", 3, 1, 3);
|
KRAKENS_GRASP_INNATE_LOYALTY_LEVEL = b.comment("Effective Loyalty level used for the innate return, from 1 to 3.") .defineInRange("innateLoyaltyLevel", 3, 1, 3);
|
||||||
KRAKENS_GRASP_TENTACLE_DURATION_TICKS = b.comment("How long a summoned tentacle lasts, in ticks.") .defineInRange("tentacleDurationTicks", 100, 1, 72000);
|
KRAKENS_GRASP_TENTACLE_DURATION_TICKS = b.comment("How long a summoned tentacle lasts, in ticks.") .defineInRange("tentacleDurationTicks", 100, 1, 72000);
|
||||||
KRAKENS_GRASP_TENTACLE_DAMAGE = b.comment("Damage a tentacle deals per damage interval to nearby entities.") .defineInRange("tentacleDamage", 3.0D, 0.0D, 4096.0D);
|
KRAKENS_GRASP_TENTACLE_RADIUS = b.comment("Radius in blocks around a tentacle that it can grab and slow.") .defineInRange("tentacleRadius", 3.0D, 0.0D, 32.0D);
|
||||||
KRAKENS_GRASP_TENTACLE_RADIUS = b.comment("Radius in blocks around a tentacle that it can grab and damage.") .defineInRange("tentacleRadius", 3.0D, 0.0D, 32.0D);
|
KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER = b.comment("Slowness amplifier applied to entities held by a tentacle (0 = Slowness I).").defineInRange("tentacleSlownessAmplifier", 8, 0, 255);
|
||||||
KRAKENS_GRASP_TENTACLE_DAMAGE_INTERVAL_TICKS = b.comment("How often, in ticks, a tentacle damages nearby entities.") .defineInRange("tentacleDamageIntervalTicks", 20, 1, 2000);
|
KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS = b.comment("How often, in ticks, a tentacle refreshes its slowness effect on nearby entities. Kept low so the effect fades quickly once an entity leaves.").defineInRange("tentacleSlownessRefreshTicks", 5, 1, 2000);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("scorpionWhip");
|
b.push("scorpionWhip");
|
||||||
@@ -593,6 +597,8 @@ public final class AntarchyToolsConfig {
|
|||||||
static double bigBerthaBasiliskCooldownSeconds() { return BIG_BERTHA_BASILISK_COOLDOWN_SECONDS.get(); }
|
static double bigBerthaBasiliskCooldownSeconds() { return BIG_BERTHA_BASILISK_COOLDOWN_SECONDS.get(); }
|
||||||
static double bigBerthaLucidInvertedDurationSeconds() { return BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS.get(); }
|
static double bigBerthaLucidInvertedDurationSeconds() { return BIG_BERTHA_LUCID_INVERTED_DURATION_SECONDS.get(); }
|
||||||
static double bigBerthaLucidInvertedDamageBonusPercent(){ return BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT.get(); }
|
static double bigBerthaLucidInvertedDamageBonusPercent(){ return BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT.get(); }
|
||||||
|
static double bigBerthaNoneModeDamageBonusPercent() { return BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT.get(); }
|
||||||
|
static double bigBerthaNightmareDamageBonusPercent() { return BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT.get(); }
|
||||||
|
|
||||||
static double krakensGraspAttackDamage() { return KRAKENS_GRASP_ATTACK_DAMAGE.get(); }
|
static double krakensGraspAttackDamage() { return KRAKENS_GRASP_ATTACK_DAMAGE.get(); }
|
||||||
static double krakensGraspAttackSpeed() { return KRAKENS_GRASP_ATTACK_SPEED.get(); }
|
static double krakensGraspAttackSpeed() { return KRAKENS_GRASP_ATTACK_SPEED.get(); }
|
||||||
@@ -601,9 +607,9 @@ public final class AntarchyToolsConfig {
|
|||||||
static boolean krakensGraspInnateLoyalty() { return KRAKENS_GRASP_INNATE_LOYALTY.get(); }
|
static boolean krakensGraspInnateLoyalty() { return KRAKENS_GRASP_INNATE_LOYALTY.get(); }
|
||||||
static int krakensGraspInnateLoyaltyLevel() { return KRAKENS_GRASP_INNATE_LOYALTY_LEVEL.get(); }
|
static int krakensGraspInnateLoyaltyLevel() { return KRAKENS_GRASP_INNATE_LOYALTY_LEVEL.get(); }
|
||||||
static int krakensGraspTentacleDurationTicks() { return KRAKENS_GRASP_TENTACLE_DURATION_TICKS.get(); }
|
static int krakensGraspTentacleDurationTicks() { return KRAKENS_GRASP_TENTACLE_DURATION_TICKS.get(); }
|
||||||
static double krakensGraspTentacleDamage() { return KRAKENS_GRASP_TENTACLE_DAMAGE.get(); }
|
|
||||||
static double krakensGraspTentacleRadius() { return KRAKENS_GRASP_TENTACLE_RADIUS.get(); }
|
static double krakensGraspTentacleRadius() { return KRAKENS_GRASP_TENTACLE_RADIUS.get(); }
|
||||||
static int krakensGraspTentacleDamageIntervalTicks() { return KRAKENS_GRASP_TENTACLE_DAMAGE_INTERVAL_TICKS.get(); }
|
static int krakensGraspTentacleSlownessAmplifier() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER.get(); }
|
||||||
|
static int krakensGraspTentacleSlownessRefreshTicks() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS.get(); }
|
||||||
static double scorpionWhipBaseDamage() { return SCORPION_WHIP_BASE_DAMAGE.get(); }
|
static double scorpionWhipBaseDamage() { return SCORPION_WHIP_BASE_DAMAGE.get(); }
|
||||||
static double scorpionWhipReachBonus() { return SCORPION_WHIP_REACH_BONUS.get(); }
|
static double scorpionWhipReachBonus() { return SCORPION_WHIP_REACH_BONUS.get(); }
|
||||||
static int scorpionWhipPoisonDurationTicks() { return SCORPION_WHIP_POISON_DURATION_TICKS.get(); }
|
static int scorpionWhipPoisonDurationTicks() { return SCORPION_WHIP_POISON_DURATION_TICKS.get(); }
|
||||||
|
|||||||
+2
@@ -296,6 +296,8 @@ public final class AntarchyNeoForgeClient {
|
|||||||
event.registerSpecial(AntarchyNeoforgeMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
event.registerSpecial(AntarchyNeoforgeMisc.INVERTED_GEYSER_ERUPTION.get(), new InvertedGeyserEruptionParticle.Provider());
|
||||||
event.registerSpriteSet(AntarchyNeoforgeMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
event.registerSpriteSet(AntarchyNeoforgeMisc.FIREFLY.get(), FireflyParticle.Provider::new);
|
||||||
event.registerSpriteSet(AntarchyNeoforgeMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
event.registerSpriteSet(AntarchyNeoforgeMisc.ORANGE_ASH.get(), OrangeAshParticle.Provider::new);
|
||||||
|
event.registerSpriteSet(AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_SMALL.get(), LucidBoltImpactParticle.SmallProvider::new);
|
||||||
|
event.registerSpriteSet(AntarchyNeoforgeMisc.LUCID_BOLT_IMPACT_LARGE.get(), LucidBoltImpactParticle.LargeProvider::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
|||||||
+4
@@ -204,6 +204,10 @@ public final class AntarchyNeoforgeMisc {
|
|||||||
() -> new SimpleParticleType(true));
|
() -> new SimpleParticleType(true));
|
||||||
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
|
||||||
() -> new SimpleParticleType(true));
|
() -> new SimpleParticleType(true));
|
||||||
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> LUCID_BOLT_IMPACT_SMALL = PARTICLE_TYPES.register("lucid_bolt_impact_small",
|
||||||
|
() -> new SimpleParticleType(true));
|
||||||
|
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> LUCID_BOLT_IMPACT_LARGE = PARTICLE_TYPES.register("lucid_bolt_impact_large",
|
||||||
|
() -> new SimpleParticleType(true));
|
||||||
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
|
||||||
() -> particleType(InvertedGeyserBaseParticleOptions::codec, InvertedGeyserBaseParticleOptions::streamCodec));
|
() -> particleType(InvertedGeyserBaseParticleOptions::codec, InvertedGeyserBaseParticleOptions::streamCodec));
|
||||||
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserParticleOptions>> INVERTED_GEYSER_PLUME = PARTICLE_TYPES.register("inverted_geyser_plume",
|
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserParticleOptions>> INVERTED_GEYSER_PLUME = PARTICLE_TYPES.register("inverted_geyser_plume",
|
||||||
|
|||||||
+4
@@ -61,6 +61,10 @@ public final class AntarchyNeoforgeSounds {
|
|||||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_ADDITIONS = registerSoundEvent("thoraxis_lucid_pools_additions");
|
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_ADDITIONS = registerSoundEvent("thoraxis_lucid_pools_additions");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_MOOD = registerSoundEvent("thoraxis_lucid_pools_mood");
|
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> LUCID_LULLABY = registerSoundEvent("lucid_lullaby");
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_THORAXIS = registerSoundEvent("music.game.thoraxis");
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_CAVARYN = registerSoundEvent("music.game.cavaryn");
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> WISTFUL_WANDERINGS = registerSoundEvent("wistful_wanderings");
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_ELYTHIA = registerSoundEvent("music.game.elythia");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_AMBIENT = registerSoundEvent("lucid_ambient");
|
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_AMBIENT = registerSoundEvent("lucid_ambient");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_FLYING = registerSoundEvent("lucid_flying");
|
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_FLYING = registerSoundEvent("lucid_flying");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_ATTACK = registerSoundEvent("lucid_attack");
|
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_ATTACK = registerSoundEvent("lucid_attack");
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
"entity.MultipartEntityBridgeMixin",
|
"entity.MultipartEntityBridgeMixin",
|
||||||
"entity.MultipartEntityLevelRegistryMixin",
|
"entity.MultipartEntityLevelRegistryMixin",
|
||||||
"entity.ParalyzedMobFreezeMixin",
|
"entity.ParalyzedMobFreezeMixin",
|
||||||
|
"infinity.AmendmentRareOresMixin",
|
||||||
"infinity.ConfigGenInvocationMixin",
|
"infinity.ConfigGenInvocationMixin",
|
||||||
"infinity.PortalCreatorMixin",
|
"infinity.PortalCreatorMixin",
|
||||||
"level.ClientLevelPartEntitiesAccessor",
|
"level.ClientLevelPartEntitiesAccessor",
|
||||||
|
|||||||
Reference in new issue
Block a user