Implement immobility for NPCs with moveCost = 999

This commit is contained in:
Nathan Watson
2020-12-19 15:52:20 -08:00
parent 6bc5e9ed13
commit 7b439696b9
3 changed files with 8 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ public final class Constants {
public static final int MAX_MAP_HEIGHT = 33;
public static final int MONSTER_MOVEMENT_TURN_DURATION_MS = 1200;
public static final int MONSTER_IMMOBILE_MOVE_COST = 999;
public static final int TICK_DELAY = 500;
private static final int ROUND_DURATION = 6000;

View File

@@ -75,6 +75,9 @@ public final class MonsterMovementController implements EvaluateWalkable {
}
private void moveMonster(final Monster m, final MonsterSpawnArea area) {
if (m.getMoveCost() == Constants.MONSTER_IMMOBILE_MOVE_COST) {
return;
}
PredefinedMap map = world.model.currentMaps.map;
LayeredTileMap tileMap = world.model.currentMaps.tileMap;
m.nextActionTime = System.currentTimeMillis() + getMillisecondsPerMove(m);

View File

@@ -5,6 +5,7 @@ import java.io.DataOutputStream;
import java.io.IOException;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.item.DropList;
@@ -37,6 +38,9 @@ public final class Monster extends Actor {
resetStatsToBaseTraits();
this.ap.setMax();
this.health.setMax();
if (this.getMoveCost() == Constants.MONSTER_IMMOBILE_MOVE_COST) {
this.nextActionTime = Long.MAX_VALUE;
}
}
public void resetStatsToBaseTraits() {