Skip to content

Commit fae475a

Browse files
authored
Fix raider fleeing speed reseach amplifier (#11407)
Fix chief sword group speed ability cooldown and difficulty selection Little bit of constants cleanup
1 parent fd63859 commit fae475a

35 files changed

+93
-111
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
@@ -38,7 +38,7 @@
3838
import static com.minecolonies.api.entity.citizen.AbstractEntityCitizen.ENTITY_AI_TICKRATE;
3939
import static com.minecolonies.api.entity.mobs.RaiderMobUtils.MOB_ATTACK_DAMAGE;
4040
import static com.minecolonies.api.util.constant.NbtTagConstants.TAG_SPAWN_POS;
41-
import static com.minecolonies.api.util.constant.RaiderConstants.*;
41+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.*;
4242

4343
/**
4444
* Abstract for all villain entities.

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

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
import static com.minecolonies.api.util.constant.ColonyManagerConstants.NO_COLONY_ID;
3838
import static com.minecolonies.api.util.constant.NbtTagConstants.*;
39-
import static com.minecolonies.api.util.constant.RaiderConstants.*;
39+
import static com.minecolonies.core.colony.events.raid.RaiderConstants.*;
4040

4141
/**
4242
* Abstract for all raider entities.
@@ -86,7 +86,7 @@ public abstract class AbstractEntityMinecoloniesRaider extends AbstractEntityMin
8686
/**
8787
* Current count of ticks.
8888
*/
89-
private int currentCount = 0;
89+
private int chiefSpeedCooldown = 0;
9090

9191
/**
9292
* The world time when the barbarian spawns.
@@ -118,11 +118,6 @@ public abstract class AbstractEntityMinecoloniesRaider extends AbstractEntityMin
118118
*/
119119
private int envDmgCooldown = 0;
120120

121-
/**
122-
* Environmental damage immunity
123-
*/
124-
private boolean envDamageImmunity = false;
125-
126121
/**
127122
* Temporary Environmental damage immunity shortly after spawning.
128123
*/
@@ -302,9 +297,8 @@ public void aiStep()
302297
return;
303298
}
304299

305-
if (currentTick % (random.nextInt(EVERY_X_TICKS) + 1) == 0)
300+
if (++currentTick % (random.nextInt(EVERY_X_TICKS) + 1) == 0)
306301
{
307-
308302
if (worldTimeAtSpawn == 0)
309303
{
310304
worldTimeAtSpawn = level().getGameTime();
@@ -331,24 +325,23 @@ public void aiStep()
331325
registerWithColony();
332326
}
333327

334-
if (currentCount <= 0)
328+
if (--chiefSpeedCooldown <= 0)
335329
{
336-
currentCount = COUNTDOWN_SECOND_MULTIPLIER * TIME_TO_COUNTDOWN;
330+
chiefSpeedCooldown = TIME_TO_COUNTDOWN;
337331

338-
if (!this.getMainHandItem().isEmpty() && SPEED_EFFECT != null && this.getMainHandItem().getItem() instanceof IChiefSwordItem
339-
&& MinecoloniesAPIProxy.getInstance().getConfig().getServer().raidDifficulty.get() >= BARBARIAN_HORDE_DIFFICULTY_FIVE)
332+
if (!this.getMainHandItem().isEmpty() && this.getMainHandItem().getItem() instanceof IChiefSwordItem
333+
&& difficulty > CHIEF_SWORD_SPEED_DIFFICULTY)
340334
{
341-
RaiderMobUtils.getBarbariansCloseToEntity(this, SPEED_EFFECT_DISTANCE)
342-
.stream().filter(entity -> !entity.hasEffect(MobEffects.MOVEMENT_SPEED))
343-
.forEach(entity -> entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, SPEED_EFFECT_DURATION, SPEED_EFFECT_MULTIPLIER)));
335+
for (AbstractEntityMinecoloniesRaider entity : RaiderMobUtils.getBarbariansCloseToEntity(this, SPEED_EFFECT_DISTANCE))
336+
{
337+
if (!entity.hasEffect(MobEffects.MOVEMENT_SPEED))
338+
{
339+
entity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, SPEED_EFFECT_DURATION, SPEED_EFFECT_MULTIPLIER));
340+
}
341+
}
344342
}
345343
}
346-
else
347-
{
348-
--currentCount;
349-
}
350344
}
351-
currentTick++;
352345

353346
if (isRegistered)
354347
{
@@ -434,7 +427,7 @@ public boolean hurt(@NotNull final DamageSource damageSource, final float damage
434427
{
435428
if (!(damageSource.getEntity() instanceof LivingEntity) || damageSource.getEntity() instanceof FakePlayer)
436429
{
437-
if (envDamageImmunity || tempEnvDamageImmunity)
430+
if (tempEnvDamageImmunity)
438431
{
439432
return false;
440433
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import java.util.List;
3131
import java.util.Random;
3232

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

3535
/**
3636
* 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)