From 04d432147eb2229c686595bfc97f0a0b720df460 Mon Sep 17 00:00:00 2001 From: someaddons Date: Fri, 31 Jan 2025 16:43:17 +0100 Subject: [PATCH] Re-add raiders bane damage bonus --- .../mobs/AbstractEntityMinecoloniesMonster.java | 12 ++++-------- .../mobs/AbstractEntityMinecoloniesRaider.java | 12 ++++++++++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesMonster.java b/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesMonster.java index e72d254e830..6d2cc6a6e7b 100644 --- a/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesMonster.java +++ b/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesMonster.java @@ -19,8 +19,9 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.damagesource.DamageTypes; -import net.minecraft.world.entity.*; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.monster.Enemy; @@ -32,7 +33,7 @@ import static com.minecolonies.api.entity.citizen.AbstractEntityCitizen.ENTITY_AI_TICKRATE; import static com.minecolonies.api.entity.mobs.RaiderMobUtils.MOB_ATTACK_DAMAGE; -import static com.minecolonies.api.util.constant.NbtTagConstants.*; +import static com.minecolonies.api.util.constant.NbtTagConstants.TAG_SPAWN_POS; import static com.minecolonies.api.util.constant.RaiderConstants.*; /** @@ -287,11 +288,6 @@ public boolean hurt(@NotNull final DamageSource damageSource, final float damage threatTable.addThreat(attacker, (int) damage); } - if (damageSource.typeHolder().is(DamageTypes.FELL_OUT_OF_WORLD)) - { - return super.hurt(damageSource, damage); - } - return super.hurt(damageSource, damage); } diff --git a/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesRaider.java b/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesRaider.java index 7de93282f5a..6f55145fb86 100644 --- a/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesRaider.java +++ b/src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesRaider.java @@ -6,6 +6,7 @@ import com.minecolonies.api.colony.IColonyManager; import com.minecolonies.api.colony.colonyEvents.IColonyCampFireRaidEvent; import com.minecolonies.api.colony.colonyEvents.IColonyEvent; +import com.minecolonies.api.enchants.ModEnchants; import com.minecolonies.api.entity.ai.combat.threat.IThreatTableEntity; import com.minecolonies.api.entity.pathfinding.registry.IPathNavigateRegistry; import com.minecolonies.api.items.IChiefSwordItem; @@ -13,12 +14,16 @@ import com.minecolonies.api.util.DamageSourceKeys; import com.minecolonies.core.entity.pathfinding.navigation.AbstractAdvancedPathNavigate; import com.minecolonies.core.entity.pathfinding.navigation.PathingStuckHandler; +import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.*; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.MobSpawnType; +import net.minecraft.world.entity.SpawnGroupData; import net.minecraft.world.entity.monster.Enemy; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.ChunkPos; @@ -454,10 +459,13 @@ else if (!level().isClientSide()) source.hurt(level().damageSources().thorns(this), damage * 0.5f); } + final float raiderDamageEnchantLevel = + player.getMainHandItem().getEnchantmentLevel(player.level().registryAccess().registry(Registries.ENCHANTMENT).get().getHolder(ModEnchants.raiderDamage).get()); + // Up to 7 damage are converted to health scaling damage, 7 is the damage of a diamond sword float baseScalingDamage = Math.min(damage, MAX_SCALED_DAMAGE); float totalWithScaled = - Math.max(damage, (damage - baseScalingDamage) + baseScalingDamage * HP_PERCENT_PER_DMG * this.getMaxHealth()); + Math.max(damage, (damage - baseScalingDamage) + baseScalingDamage * HP_PERCENT_PER_DMG * this.getMaxHealth() * (1 + (raiderDamageEnchantLevel / 5))); return super.hurt(damageSource, totalWithScaled); } }