修改伤害逻辑
This commit is contained in:
parent
30c695542e
commit
45752ec95c
7 changed files with 24 additions and 21 deletions
|
@ -136,9 +136,9 @@ public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
|
|||
|
||||
boolean hurt;
|
||||
if (headshot) {
|
||||
hurt = entity.hurt(TargetModDamageTypes.causeArrowInBrainDamage(this.level().registryAccess(), this.getOwner()), (float) i * 2);
|
||||
hurt = entity.hurt(TargetModDamageTypes.causeArrowInBrainDamage(this.level().registryAccess(), this, this.getOwner()), (float) i * 2);
|
||||
} else {
|
||||
hurt = entity.hurt(TargetModDamageTypes.causeArrowInKneeDamage(this.level().registryAccess(), this.getOwner()), (float) i);
|
||||
hurt = entity.hurt(TargetModDamageTypes.causeArrowInKneeDamage(this.level().registryAccess(), this, this.getOwner()), (float) i);
|
||||
}
|
||||
|
||||
if (!hurt) {
|
||||
|
|
|
@ -120,9 +120,9 @@ public class GunGrenadeEntity extends ThrowableItemProjectile {
|
|||
}
|
||||
|
||||
if (headshot) {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this.getOwner()), this.damage * 2f);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 2f);
|
||||
} else {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this.getOwner()), this.damage);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
|
||||
}
|
||||
|
||||
this.discard();
|
||||
|
|
|
@ -358,7 +358,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
|
||||
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(1, 5));
|
||||
}
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this.shooter), this.damage * this.headShot);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.shooter), this.damage * this.headShot);
|
||||
} else {
|
||||
if (!this.shooter.level().isClientSide() && this.shooter instanceof ServerPlayer player) {
|
||||
var holder = Holder.direct(TargetModSounds.INDICATION.get());
|
||||
|
@ -366,7 +366,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
|
||||
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
||||
}
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this.shooter), this.damage);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this, this.shooter), this.damage);
|
||||
}
|
||||
this.discard();
|
||||
}
|
||||
|
|
|
@ -119,9 +119,9 @@ public class RpgRocketEntity extends ThrowableItemProjectile {
|
|||
}
|
||||
|
||||
if (headshot) {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this.getOwner()), this.damage * 5f);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 5f);
|
||||
} else {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this.getOwner()), this.damage);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
|
||||
}
|
||||
|
||||
this.discard();
|
||||
|
|
|
@ -113,9 +113,9 @@ public class TaserBulletProjectileEntity extends ThrowableItemProjectile {
|
|||
}
|
||||
|
||||
if (headshot) {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this.getOwner()), this.damage * 1.5f);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 1.5f);
|
||||
} else {
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this.getOwner()), this.damage);
|
||||
entity.hurt(TargetModDamageTypes.causeGunFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage);
|
||||
}
|
||||
|
||||
this.discard();
|
||||
|
|
|
@ -215,7 +215,7 @@ public class LivingEventHandler {
|
|||
ResourceKey<DamageType> damageTypeResourceKey = source.typeHolder().unwrapKey().isPresent() ? source.typeHolder().unwrapKey().get() : DamageTypes.GENERIC;
|
||||
|
||||
ServerPlayer attacker = null;
|
||||
if (source.getDirectEntity() instanceof ServerPlayer player) {
|
||||
if (source.getEntity() instanceof ServerPlayer player) {
|
||||
attacker = player;
|
||||
}
|
||||
if (source.getDirectEntity() instanceof Projectile projectile && projectile.getOwner() instanceof ServerPlayer player) {
|
||||
|
|
|
@ -23,21 +23,20 @@ public class TargetModDamageTypes {
|
|||
public static final ResourceKey<DamageType> MINE = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "mine"));
|
||||
public static final ResourceKey<DamageType> BEAST = ResourceKey.create(Registries.DAMAGE_TYPE, new ResourceLocation(TargetMod.MODID, "beast"));
|
||||
|
||||
|
||||
public static DamageSource causeGunFireDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUN_FIRE), entity);
|
||||
public static DamageSource causeGunFireDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUN_FIRE), directEntity, attacker);
|
||||
}
|
||||
|
||||
public static DamageSource causeGunFireHeadshotDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUN_FIRE_HEADSHOT), entity);
|
||||
public static DamageSource causeGunFireHeadshotDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(GUN_FIRE_HEADSHOT), directEntity, attacker);
|
||||
}
|
||||
|
||||
public static DamageSource causeArrowInKneeDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(ARROW_IN_KNEE), entity);
|
||||
public static DamageSource causeArrowInKneeDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(ARROW_IN_KNEE), directEntity, attacker);
|
||||
}
|
||||
|
||||
public static DamageSource causeArrowInBrainDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(ARROW_IN_BRAIN), entity);
|
||||
public static DamageSource causeArrowInBrainDamage(RegistryAccess registryAccess, @Nullable Entity directEntity, @Nullable Entity attacker) {
|
||||
return new DamageMessages(registryAccess.registry(Registries.DAMAGE_TYPE).get().getHolderOrThrow(ARROW_IN_BRAIN), directEntity, attacker);
|
||||
}
|
||||
|
||||
public static DamageSource causeMineDamage(RegistryAccess registryAccess, @Nullable Entity entity) {
|
||||
|
@ -53,9 +52,13 @@ public class TargetModDamageTypes {
|
|||
super(typeReference, entity);
|
||||
}
|
||||
|
||||
public DamageMessages(Holder.Reference<DamageType> typeReference, Entity directEntity, Entity attacker) {
|
||||
super(typeReference, directEntity, attacker);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component getLocalizedDeathMessage(LivingEntity pLivingEntity) {
|
||||
Entity entity = this.getDirectEntity() == null ? this.getEntity() : this.getDirectEntity();
|
||||
Entity entity = this.getEntity() == null ? this.getDirectEntity() : this.getEntity();
|
||||
if (entity == null) {
|
||||
return Component.translatable("death.attack." + this.getMsgId(), pLivingEntity.getDisplayName());
|
||||
} else if (entity instanceof LivingEntity living && living.getMainHandItem().hasCustomHoverName()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue