From 7b439696b975fa79ff7e4a086b970227ebf678a0 Mon Sep 17 00:00:00 2001 From: Nathan Watson Date: Sat, 19 Dec 2020 15:52:20 -0800 Subject: [PATCH] Implement immobility for NPCs with moveCost = 999 --- .../src/com/gpl/rpg/AndorsTrail/controller/Constants.java | 1 + .../rpg/AndorsTrail/controller/MonsterMovementController.java | 3 +++ .../src/com/gpl/rpg/AndorsTrail/model/actor/Monster.java | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java index 81c3203a4..88c2adff8 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java @@ -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; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java index 0a352aadd..68fe6bde9 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java @@ -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); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Monster.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Monster.java index 9ee06af2b..0b65faa20 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Monster.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Monster.java @@ -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() {