Skip to content

Commit 32b1c3e

Browse files
committed
Fix raider fleeing speed reseach amplifier (#11407)
Fix chief sword group speed ability cooldown and difficulty selection Little bit of constants cleanup
1 parent 4693e28 commit 32b1c3e

36 files changed

+101
-121
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"effect": true,
33
"levels": [
4+
0.0,
45
1.0,
56
2.0,
6-
3.0,
7-
5.0
7+
3.0
88
]
99
}

src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesMonster.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import static com.minecolonies.api.entity.citizen.AbstractEntityCitizen.ENTITY_AI_TICKRATE;
3535
import static com.minecolonies.api.entity.mobs.RaiderMobUtils.MOB_ATTACK_DAMAGE;
3636
import static com.minecolonies.api.util.constant.NbtTagConstants.TAG_SPAWN_POS;
37-
import static com.minecolonies.api.util.constant.RaiderConstants.*;
37+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.*;
3838

3939
/**
4040
* Abstract for all villain entities.

src/main/java/com/minecolonies/api/entity/mobs/AbstractEntityMinecoloniesRaider.java

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
import static com.minecolonies.api.util.constant.ColonyManagerConstants.NO_COLONY_ID;
3636
import static com.minecolonies.api.util.constant.NbtTagConstants.*;
37-
import static com.minecolonies.api.util.constant.RaiderConstants.*;
37+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.*;
3838

3939
/**
4040
* Abstract for all raider entities.
@@ -84,7 +84,7 @@ public abstract class AbstractEntityMinecoloniesRaider extends AbstractEntityMin
8484
/**
8585
* Current count of ticks.
8686
*/
87-
private int currentCount = 0;
87+
private int chiefSpeedCooldown = 0;
8888

8989
/**
9090
* The world time when the barbarian spawns.
@@ -116,11 +116,6 @@ public abstract class AbstractEntityMinecoloniesRaider extends AbstractEntityMin
116116
*/
117117
private int envDmgCooldown = 0;
118118

119-
/**
120-
* Environmental damage immunity
121-
*/
122-
private boolean envDamageImmunity = false;
123-
124119
/**
125120
* Temporary Environmental damage immunity shortly after spawning.
126121
*/
@@ -298,9 +293,8 @@ public void aiStep()
298293
return;
299294
}
300295

301-
if (currentTick % (random.nextInt(EVERY_X_TICKS) + 1) == 0)
296+
if (++currentTick % (random.nextInt(EVERY_X_TICKS) + 1) == 0)
302297
{
303-
304298
if (worldTimeAtSpawn == 0)
305299
{
306300
worldTimeAtSpawn = level().getGameTime();
@@ -327,24 +321,23 @@ public void aiStep()
327321
registerWithColony();
328322
}
329323

330-
if (currentCount <= 0)
324+
if (--chiefSpeedCooldown <= 0)
331325
{
332-
currentCount = COUNTDOWN_SECOND_MULTIPLIER * TIME_TO_COUNTDOWN;
326+
chiefSpeedCooldown = TIME_TO_COUNTDOWN;
333327

334328
if (!this.getMainHandItem().isEmpty() && this.getMainHandItem().getItem() instanceof IChiefSwordItem
335-
&& MinecoloniesAPIProxy.getInstance().getConfig().getServer().raidDifficulty.get() >= BARBARIAN_HORDE_DIFFICULTY_FIVE)
329+
&& difficulty > CHIEF_SWORD_SPEED_DIFFICULTY)
336330
{
337-
RaiderMobUtils.getBarbariansCloseToEntity(this, SPEED_EFFECT_DISTANCE)
338-
.stream().filter(entity -> !entity.hasEffect(MobEffects.MOVEMENT_SPEED))
339-
.forEach(entity -> entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, SPEED_EFFECT_DURATION, SPEED_EFFECT_MULTIPLIER)));
331+
for (AbstractEntityMinecoloniesRaider entity : RaiderMobUtils.getBarbariansCloseToEntity(this, SPEED_EFFECT_DISTANCE))
332+
{
333+
if (!entity.hasEffect(MobEffects.MOVEMENT_SPEED))
334+
{
335+
entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, SPEED_EFFECT_DURATION, SPEED_EFFECT_MULTIPLIER));
336+
}
337+
}
340338
}
341339
}
342-
else
343-
{
344-
--currentCount;
345-
}
346340
}
347-
currentTick++;
348341

349342
if (isRegistered)
350343
{
@@ -430,7 +423,7 @@ public boolean hurt(@NotNull final DamageSource damageSource, final float damage
430423
{
431424
if (!(damageSource.getEntity() instanceof LivingEntity) || damageSource.getEntity() instanceof FakePlayer)
432425
{
433-
if (envDamageImmunity || tempEnvDamageImmunity)
426+
if (tempEnvDamageImmunity)
434427
{
435428
return false;
436429
}

src/main/java/com/minecolonies/api/entity/mobs/RaiderMobUtils.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@
2626
import net.minecraft.world.level.Level;
2727
import net.neoforged.neoforge.registries.DeferredHolder;
2828
import net.neoforged.neoforge.registries.DeferredRegister;
29+
2930
import java.util.List;
3031
import java.util.Random;
3132

32-
import static com.minecolonies.api.util.constant.RaiderConstants.*;
33+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.*;
3334

3435
/**
3536
* Util class for raider mobs/spawning

src/main/java/com/minecolonies/api/entity/mobs/amazons/AbstractEntityAmazon.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import net.minecraft.world.level.Level;
99
import net.minecraft.world.level.LevelAccessor;
1010

11-
import static com.minecolonies.api.util.constant.RaiderConstants.ONE;
12-
import static com.minecolonies.api.util.constant.RaiderConstants.OUT_OF_ONE_HUNDRED;
11+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.ONE;
12+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.OUT_OF_ONE_HUNDRED;
1313

1414
/**
1515
* Abstract for all amazon entities.

src/main/java/com/minecolonies/api/entity/mobs/amazons/AbstractEntityAmazonRaider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import net.minecraft.world.level.Level;
99
import net.minecraft.world.level.LevelAccessor;
1010

11-
import static com.minecolonies.api.util.constant.RaiderConstants.ONE;
12-
import static com.minecolonies.api.util.constant.RaiderConstants.OUT_OF_ONE_HUNDRED;
11+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.ONE;
12+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.OUT_OF_ONE_HUNDRED;
1313

1414
/**
1515
* Abstract for all amazon entities.

src/main/java/com/minecolonies/api/entity/mobs/barbarians/AbstractEntityBarbarian.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import net.minecraft.world.entity.EntityType;
77
import net.minecraft.world.level.Level;
88

9-
import static com.minecolonies.api.util.constant.RaiderConstants.ONE;
10-
import static com.minecolonies.api.util.constant.RaiderConstants.OUT_OF_ONE_HUNDRED;
9+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.ONE;
10+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.OUT_OF_ONE_HUNDRED;
1111

1212
/**
1313
* Abstract for all Barbarian entities.

src/main/java/com/minecolonies/api/entity/mobs/barbarians/AbstractEntityBarbarianRaider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import net.minecraft.world.entity.EntityType;
77
import net.minecraft.world.level.Level;
88

9-
import static com.minecolonies.api.util.constant.RaiderConstants.ONE;
10-
import static com.minecolonies.api.util.constant.RaiderConstants.OUT_OF_ONE_HUNDRED;
9+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.ONE;
10+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.OUT_OF_ONE_HUNDRED;
1111

1212
/**
1313
* Abstract for all Barbarian entities.

src/main/java/com/minecolonies/api/entity/mobs/drownedpirate/AbstractDrownedEntityPirate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import net.minecraft.world.level.LevelReader;
1515
import org.jetbrains.annotations.NotNull;
1616

17-
import static com.minecolonies.api.util.constant.RaiderConstants.ONE;
18-
import static com.minecolonies.api.util.constant.RaiderConstants.OUT_OF_ONE_HUNDRED;
17+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.ONE;
18+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.OUT_OF_ONE_HUNDRED;
1919

2020
/**
2121
* Abstract for all drowned pirate entities.

src/main/java/com/minecolonies/api/entity/mobs/drownedpirate/AbstractDrownedEntityPirateRaider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import net.minecraft.world.level.LevelReader;
1515
import org.jetbrains.annotations.NotNull;
1616

17-
import static com.minecolonies.api.util.constant.RaiderConstants.ONE;
18-
import static com.minecolonies.api.util.constant.RaiderConstants.OUT_OF_ONE_HUNDRED;
17+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.ONE;
18+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.OUT_OF_ONE_HUNDRED;
1919

2020
/**
2121
* Abstract for all drowned pirate entities.

0 commit comments

Comments
 (0)