Skip to content

Commit

Permalink
Fix knight damage (#10633)
Browse files Browse the repository at this point in the history
* Fix knight damage
* Small performance fix with claim data
  • Loading branch information
someaddons authored Feb 2, 2025
1 parent ba4bd7a commit 9ef6d6c
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,7 @@
import com.minecolonies.api.entity.pathfinding.registry.IPathNavigateRegistry;
import com.minecolonies.api.inventory.InventoryCitizen;
import com.minecolonies.api.sounds.EventType;
import com.minecolonies.api.util.CompatibilityUtils;
import com.minecolonies.api.util.IItemHandlerCapProvider;
import com.minecolonies.api.util.ItemStackUtils;
import com.minecolonies.api.util.Log;
import com.minecolonies.api.util.SoundUtils;
import com.minecolonies.api.util.*;
import com.minecolonies.core.entity.pathfinding.navigation.AbstractAdvancedPathNavigate;
import com.minecolonies.core.entity.pathfinding.navigation.PathingStuckHandler;
import com.mojang.datafixers.util.Pair;
Expand Down Expand Up @@ -59,6 +55,7 @@
import java.util.List;

import static com.minecolonies.api.util.constant.CitizenConstants.*;
import static com.minecolonies.api.util.constant.GuardConstants.BASE_PHYSICAL_DAMAGE;

/**
* The abstract citizen entity.
Expand Down Expand Up @@ -160,10 +157,11 @@ public AbstractEntityCitizen(final EntityType<? extends PathfinderMob> type, fin
*/
public static AttributeSupplier.Builder getDefaultAttributes()
{
return LivingEntity.createLivingAttributes()
.add(Attributes.MAX_HEALTH, BASE_MAX_HEALTH)
.add(Attributes.MOVEMENT_SPEED, BASE_MOVEMENT_SPEED)
.add(Attributes.FOLLOW_RANGE, BASE_PATHFINDING_RANGE);
return Mob.createLivingAttributes()
.add(Attributes.MAX_HEALTH, BASE_MAX_HEALTH)
.add(Attributes.ATTACK_DAMAGE, BASE_PHYSICAL_DAMAGE)
.add(Attributes.MOVEMENT_SPEED, BASE_MOVEMENT_SPEED)
.add(Attributes.FOLLOW_RANGE, BASE_PATHFINDING_RANGE);
}

public GoalSelector getTasks()
Expand Down
9 changes: 6 additions & 3 deletions src/main/java/com/minecolonies/core/colony/ColonyManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@
import com.google.common.collect.Maps;
import com.minecolonies.api.IMinecoloniesAPI;
import com.minecolonies.api.blocks.AbstractBlockHut;
import com.minecolonies.api.colony.*;
import com.minecolonies.api.colony.ICitizenData;
import com.minecolonies.api.colony.IColony;
import com.minecolonies.api.colony.IColonyManager;
import com.minecolonies.api.colony.IColonyView;
import com.minecolonies.api.colony.buildings.IBuilding;
import com.minecolonies.api.colony.buildings.views.IBuildingView;
import com.minecolonies.api.colony.claim.ChunkClaimData;
import com.minecolonies.api.colony.claim.IChunkClaimData;
import com.minecolonies.api.colony.savedata.IServerColonySaveData;
import com.minecolonies.api.colony.permissions.ColonyPlayer;
import com.minecolonies.api.colony.savedata.IServerColonySaveData;
import com.minecolonies.api.compatibility.CompatibilityManager;
import com.minecolonies.api.compatibility.ICompatibilityManager;
import com.minecolonies.api.crafting.IRecipeManager;
Expand Down Expand Up @@ -892,7 +895,7 @@ public Map<ChunkPos, IChunkClaimData> getClaimData(final ResourceKey<Level> dime
@Override
public IChunkClaimData getClaimData(final ResourceKey<Level> dimension, final ChunkPos pos)
{
return this.chunkClaimData.getOrDefault(dimension, new Long2ObjectOpenHashMap<>()).getOrDefault(pos.toLong(), null);
return this.chunkClaimData.computeIfAbsent(dimension, (k) -> new Long2ObjectOpenHashMap<>()).getOrDefault(pos.toLong(), null);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.decoration.ArmorStand;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
Expand Down Expand Up @@ -256,13 +257,13 @@ private double getAttackDamage()
{
if (heldItem.getItem() instanceof SwordItem)
{
addDmg += ((SwordItem) heldItem.getItem()).getDamage(heldItem) + BASE_PHYSICAL_DAMAGE;
addDmg += user.getAttribute(Attributes.ATTACK_DAMAGE).getValue();
}
else
{
addDmg += TinkersToolHelper.getDamage(heldItem);
}
addDmg += EnchantmentHelper.modifyDamage((ServerLevel) user.level(), heldItem, target, user.level().damageSources().mobAttack(user), 1) / 2.5;
addDmg += EnchantmentHelper.modifyDamage((ServerLevel) user.level(), heldItem, target, user.level().damageSources().mobAttack(user), (float) addDmg);
}

addDmg += user.getCitizenColonyHandler().getColonyOrRegister().getResearchManager().getResearchEffects().getEffectStrength(MELEE_DAMAGE);
Expand Down

0 comments on commit 9ef6d6c

Please sign in to comment.