调整火炮粒子效果和数据
This commit is contained in:
parent
5439d3e0ab
commit
4ae291db84
4 changed files with 86 additions and 96 deletions
|
@ -12,6 +12,7 @@ import net.minecraft.network.chat.Component;
|
|||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.ClipContext;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
@ -68,9 +69,9 @@ public class CannonHudOverlay {
|
|||
double entity_range = 0;
|
||||
|
||||
|
||||
if (lookingEntity != null) {
|
||||
if (lookingEntity instanceof LivingEntity living) {
|
||||
lookAtEntity = true;
|
||||
entity_range = player.distanceTo(lookingEntity);
|
||||
entity_range = player.distanceTo(living);
|
||||
}
|
||||
if (lookAtEntity) {
|
||||
event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.range")
|
||||
|
|
|
@ -122,7 +122,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit
|
|||
if (amount < 32) {
|
||||
return false;
|
||||
}
|
||||
return super.hurt(source, amount - 32);
|
||||
return super.hurt(source, 0.3f * amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -216,7 +216,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit
|
|||
int durability = 0;
|
||||
|
||||
if (stack.is(ModItems.HE_5_INCHES.get())) {
|
||||
hitDamage = 100;
|
||||
hitDamage = 600;
|
||||
explosionRadius = 10;
|
||||
explosionDamage = 200;
|
||||
fireProbability = 0.18F;
|
||||
|
@ -224,7 +224,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit
|
|||
}
|
||||
|
||||
if (stack.is(ModItems.AP_5_INCHES.get())) {
|
||||
hitDamage = 450;
|
||||
hitDamage = 850;
|
||||
explosionRadius = 3;
|
||||
explosionDamage = 250;
|
||||
fireProbability = 0;
|
||||
|
@ -257,7 +257,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit
|
|||
this.getX() + 5 * this.getLookAngle().x,
|
||||
this.getY(),
|
||||
this.getZ() + 5 * this.getLookAngle().z,
|
||||
200, 5, 0.02, 5, 0.005);
|
||||
100, 7, 0.02, 7, 0.005);
|
||||
|
||||
double x = this.getX() + 9 * this.getLookAngle().x;
|
||||
double y = this.getEyeY() + 9 * this.getLookAngle().y;
|
||||
|
@ -267,42 +267,15 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity, ICannonEntit
|
|||
|
||||
server.sendParticles(ParticleTypes.CLOUD, x, y, z, 10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
int count = 6;
|
||||
|
||||
for (float i = 9.5f; i < 16; i += .5f) {
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 9.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 9.5 * this.getLookAngle().y,
|
||||
this.getZ() + 9.5 * this.getLookAngle().z,
|
||||
5, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 10 * this.getLookAngle().x,
|
||||
this.getEyeY() + 10 * this.getLookAngle().y,
|
||||
this.getZ() + 10 * this.getLookAngle().z,
|
||||
4, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 11.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 11.5 * this.getLookAngle().y,
|
||||
this.getZ() + 11.5 * this.getLookAngle().z,
|
||||
3, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 12 * this.getLookAngle().x,
|
||||
this.getEyeY() + 12 * this.getLookAngle().y,
|
||||
this.getZ() + 12 * this.getLookAngle().z,
|
||||
2, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 12.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 12.5 * this.getLookAngle().y,
|
||||
this.getZ() + 12.5 * this.getLookAngle().z,
|
||||
2, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 13 * this.getLookAngle().x,
|
||||
this.getEyeY() + 13 * this.getLookAngle().y,
|
||||
this.getZ() + 13 * this.getLookAngle().z,
|
||||
1, 0.15, 0.15, 0.15, 0.0075);
|
||||
this.getX() + i * this.getLookAngle().x,
|
||||
this.getEyeY() + i * this.getLookAngle().y,
|
||||
this.getZ() + i * this.getLookAngle().z,
|
||||
Mth.clamp(count--,1,5), 0.15, 0.15, 0.15, 0.0025);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
if (amount < 34) {
|
||||
return false;
|
||||
}
|
||||
return super.hurt(source, amount - 34);
|
||||
return super.hurt(source, 0.3f * amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -213,7 +213,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
boolean salvoShoot = false;
|
||||
|
||||
if (stack.is(ModItems.HE_5_INCHES.get())) {
|
||||
hitDamage = 130;
|
||||
hitDamage = 700;
|
||||
explosionRadius = 13;
|
||||
explosionDamage = 250;
|
||||
fireProbability = 0.24F;
|
||||
|
@ -222,7 +222,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
}
|
||||
|
||||
if (stack.is(ModItems.AP_5_INCHES.get())) {
|
||||
hitDamage = 550;
|
||||
hitDamage = 1000;
|
||||
explosionRadius = 3.8f;
|
||||
explosionDamage = 300;
|
||||
fireProbability = 0;
|
||||
|
@ -241,7 +241,7 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
}
|
||||
yRot = yRot + 90 % 360;
|
||||
|
||||
var leftPos = new Vector3d(7.2, 0, -0.45);
|
||||
var leftPos = new Vector3d(0, 0, -0.45);
|
||||
leftPos.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
leftPos.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
|
@ -255,9 +255,40 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
entityToSpawnLeft.shoot(this.getLookAngle().x, this.getLookAngle().y, this.getLookAngle().z, 15, 0.05f);
|
||||
level.addFreshEntity(entityToSpawnLeft);
|
||||
|
||||
var leftPosP1 = new Vector3d(7, 0, -0.45);
|
||||
leftPosP1.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
leftPosP1.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + leftPosP1.x,
|
||||
this.getEyeY() - 0.2 + leftPosP1.y,
|
||||
this.getZ() + leftPosP1.z,
|
||||
10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CLOUD,
|
||||
this.getX() + leftPosP1.x,
|
||||
this.getEyeY() - 0.2 + leftPosP1.y,
|
||||
this.getZ() + leftPosP1.z,
|
||||
10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
int count = 5;
|
||||
|
||||
for (float i = 9.5f; i < 14; i += .5f) {
|
||||
|
||||
var leftPosP = new Vector3d(i, 0, -0.45);
|
||||
leftPosP.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
leftPosP.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + leftPosP.x,
|
||||
this.getEyeY() - 0.2 + leftPosP.y,
|
||||
this.getZ() + leftPosP.z,
|
||||
Mth.clamp(count--,1,5), 0.1, 0.1, 0.1, 0.002);
|
||||
}
|
||||
|
||||
//右炮管
|
||||
if (salvoShoot) {
|
||||
var rightPos = new Vector3d(7.2, 0, 0.45);
|
||||
var rightPos = new Vector3d(0, 0, 0.45);
|
||||
rightPos.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
rightPos.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
|
@ -270,6 +301,37 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
entityToSpawnRight.shoot(this.getLookAngle().x, this.getLookAngle().y, this.getLookAngle().z, 15, 0.05f);
|
||||
level.addFreshEntity(entityToSpawnRight);
|
||||
|
||||
var rightPosP1 = new Vector3d(7, 0, 0.45);
|
||||
rightPosP1.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
rightPosP1.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + rightPosP1.x,
|
||||
this.getEyeY() - 0.2 + rightPosP1.y,
|
||||
this.getZ() + rightPosP1.z,
|
||||
10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CLOUD,
|
||||
this.getX() + rightPosP1.x,
|
||||
this.getEyeY() - 0.2 + rightPosP1.y,
|
||||
this.getZ() + rightPosP1.z,
|
||||
10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
int countR = 5;
|
||||
|
||||
for (float i = 9.5f; i < 14; i += .5f) {
|
||||
|
||||
var rightPosP = new Vector3d(i, 0, 0.45);
|
||||
rightPosP.rotateZ(-this.getXRot() * Mth.DEG_TO_RAD);
|
||||
rightPosP.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + rightPosP.x,
|
||||
this.getEyeY() - 0.2 + rightPosP.y,
|
||||
this.getZ() + rightPosP.z,
|
||||
Mth.clamp(countR--,1,5), 0.1, 0.1, 0.1, 0.002);
|
||||
}
|
||||
|
||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> capability.recoilHorizon = 1);
|
||||
} else {
|
||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> capability.recoilHorizon = -1);
|
||||
|
@ -289,51 +351,8 @@ public class Mle1934Entity extends PathfinderMob implements GeoEntity, ICannonEn
|
|||
this.getX() + 5 * this.getLookAngle().x,
|
||||
this.getY(),
|
||||
this.getZ() + 5 * this.getLookAngle().z,
|
||||
200, 5, 0.02, 5, 0.005);
|
||||
100, 7, 0.02, 7, 0.005);
|
||||
|
||||
double x = this.getX() + 9 * this.getLookAngle().x;
|
||||
double y = this.getEyeY() + 9 * this.getLookAngle().y;
|
||||
double z = this.getZ() + 9 * this.getLookAngle().z;
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE, x, y, z, 10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CLOUD, x, y, z, 10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 9.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 9.5 * this.getLookAngle().y,
|
||||
this.getZ() + 9.5 * this.getLookAngle().z,
|
||||
5, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 10 * this.getLookAngle().x,
|
||||
this.getEyeY() + 10 * this.getLookAngle().y,
|
||||
this.getZ() + 10 * this.getLookAngle().z,
|
||||
4, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 11.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 11.5 * this.getLookAngle().y,
|
||||
this.getZ() + 11.5 * this.getLookAngle().z,
|
||||
3, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 12 * this.getLookAngle().x,
|
||||
this.getEyeY() + 12 * this.getLookAngle().y,
|
||||
this.getZ() + 12 * this.getLookAngle().z,
|
||||
2, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 12.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 12.5 * this.getLookAngle().y,
|
||||
this.getZ() + 12.5 * this.getLookAngle().z,
|
||||
2, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 13 * this.getLookAngle().x,
|
||||
this.getEyeY() + 13 * this.getLookAngle().y,
|
||||
this.getZ() + 13 * this.getLookAngle().z,
|
||||
1, 0.15, 0.15, 0.15, 0.0075);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -119,14 +119,14 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
}
|
||||
|
||||
if (entity instanceof Monster monster) {
|
||||
monster.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * damageMultiplier);
|
||||
monster.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), 2 * this.damage * damageMultiplier);
|
||||
} else {
|
||||
entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
|
||||
entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), 2 * this.damage);
|
||||
}
|
||||
|
||||
if (this.tickCount > 1) {
|
||||
if (this.level() instanceof ServerLevel) {
|
||||
ProjectileTool.causeCustomExplode(this, entity, this.damage, 8.0f, this.monsterMultiplier);
|
||||
ProjectileTool.causeCustomExplode(this, entity, 1.25f *this.damage, 8.0f, this.monsterMultiplier);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -187,9 +187,6 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
} else {
|
||||
this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(), entity.getEyeY() + (entity instanceof EnderDragon ? -3 : 1), entity.getZ()));
|
||||
}
|
||||
if (this.position().distanceTo(entity.position()) < 4) {
|
||||
ProjectileTool.causeCustomExplode(this, entity, this.damage, 8.0f, this.monsterMultiplier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue