数据调整

This commit is contained in:
Atsuihsio 2024-09-06 06:31:15 +08:00
parent d95552900e
commit e4fc6d5225
6 changed files with 21 additions and 11 deletions

View file

@ -92,6 +92,7 @@ public class ClickHandler {
if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) {
if (player.hasEffect(ModMobEffects.SHOCK.get())) {
event.setCanceled(true);
return;
}
if (player.getMainHandItem().is(ModTags.Items.GUN) || (player.isPassenger() && player.getVehicle() instanceof ICannonEntity)) {
event.setCanceled(true);

View file

@ -4,6 +4,7 @@ import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.renderer.RenderType;
@ -30,7 +31,7 @@ public class JavelinHudOverlay {
if (player != null) {
ItemStack stack = player.getMainHandItem();
if ((stack.getItem() == ModItems.JAVELIN.get() && !stack.getOrCreateTag().getBoolean("HoloHidden")) && Minecraft.getInstance().options.getCameraType().isFirstPerson()) {
if ((stack.getItem() == ModItems.JAVELIN.get() && !stack.getOrCreateTag().getBoolean("HoloHidden")) && Minecraft.getInstance().options.getCameraType().isFirstPerson() && (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) {
RenderSystem.disableDepthTest();
RenderSystem.depthMask(false);
RenderSystem.enableBlend();

View file

@ -24,6 +24,7 @@ import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
import net.minecraft.world.entity.monster.Monster;
import net.minecraft.world.entity.projectile.ThrowableItemProjectile;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.Explosion;
@ -52,16 +53,17 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty";
private int monsterMultiplier = 0;
private float damage = 300f;
public JavelinMissileEntity(EntityType<? extends JavelinMissileEntity> type, Level world) {
super(type, world);
}
public JavelinMissileEntity(LivingEntity entity, Level level, float damage) {
super(ModEntities.JAVELIN_MISSILE.get(), entity, level);
public JavelinMissileEntity(LivingEntity entity, Level level, float damage, int monsterMultiplier) {
super(ModEntities.RPG_ROCKET.get(), entity, level);
this.damage = damage;
this.monsterMultiplier = monsterMultiplier;
}
public JavelinMissileEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
@ -99,6 +101,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
@Override
protected void onHitEntity(EntityHitResult result) {
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier;
Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) {
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
@ -112,7 +115,11 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
entity.invulnerableTime = 0;
}
entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), 0.2f * this.damage);
if (entity instanceof Monster monster) {
monster.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * damageMultiplier);
} else {
entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
}
if (this.tickCount > 1) {
if (this.level() instanceof ServerLevel) {
@ -214,7 +221,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
private void causeExplode() {
CustomExplosion explosion = new CustomExplosion(this.level(), this,
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), this.damage,
this.getX(), this.getY(), this.getZ(), 7f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
this.getX(), this.getY(), this.getZ(), 8f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier);
explosion.explode();
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
explosion.finalizeExplosion(false);
@ -225,7 +232,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
private void triggerExplode(Entity target) {
CustomExplosion explosion = new CustomExplosion(this.level(), this,
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), this.damage,
target.getX(), target.getY(), target.getZ(), 7f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
target.getX(), target.getY(), target.getZ(), 8f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier);
explosion.explode();
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
explosion.finalizeExplosion(false);
@ -236,7 +243,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
private void causeEntityHitExplode(Entity entity) {
CustomExplosion explosion = new CustomExplosion(this.level(), this,
ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), this.damage,
entity.getX(), entity.getY(), entity.getZ(), 7f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
entity.getX(), entity.getY(), entity.getZ(), 8f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier);
explosion.explode();
net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion);
explosion.finalizeExplosion(false);

View file

@ -94,7 +94,7 @@ public class TaserBulletProjectileEntity extends AbstractArrow implements ItemSu
return;
}
if (!living.level().isClientSide()) {
living.addEffect(new MobEffectInstance(ModMobEffects.SHOCK.get(), 100, volt), this.getOwner());
living.addEffect(new MobEffectInstance(ModMobEffects.SHOCK.get(), 100 + volt * 30, volt), this.getOwner());
}
}
this.discard();

View file

@ -482,7 +482,8 @@ public class FireMessage {
firePos.rotateY(-yRot * Mth.DEG_TO_RAD);
if (!level.isClientSide()) {
JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"));
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem);
JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple);
missileEntity.setPos(player.getX() + firePos.x, player.getEyeY() + firePos.y, player.getZ() + firePos.z);
missileEntity.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.3, player.getLookAngle().z, 3f, 1);
missileEntity.setTargetUuid(tag.getString("TargetEntity"));

View file

@ -148,7 +148,7 @@ public class CustomExplosion extends Explosion {
double damageFinal = (damagePercent * damagePercent + damagePercent) / 2.0D * damage;
if (entity instanceof Monster monster) {
monster.hurt(this.damageSource, (int) damageFinal * (1 + 0.4f * this.damageMultiplier));
monster.hurt(this.damageSource, (int) damageFinal * (1 + 0.2f * this.damageMultiplier));
} else {
entity.hurt(this.damageSource, (float) ((int) damageFinal));
}