diff --git a/Server/data/configs/npc_configs.json b/Server/data/configs/npc_configs.json index a7682ca76..3eab75924 100644 --- a/Server/data/configs/npc_configs.json +++ b/Server/data/configs/npc_configs.json @@ -25923,7 +25923,8 @@ "aggressive": "true", "bonuses": "0,0,0,0,0,30,40,100,90,100,0,0,0,0,0", "range_level": "1", - "attack_level": "140" + "attack_level": "140", + "can_tolerate": "false" }, { "examine": "Digging.", diff --git a/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java b/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java index 3d960d549..c11a2e404 100644 --- a/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java +++ b/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java @@ -1,5 +1,6 @@ package core.game.node.entity.npc.agg; +import core.game.node.entity.npc.NPC; import rs09.ServerConstants; import core.game.node.entity.Entity; import core.game.node.entity.combat.DeathTask; @@ -187,7 +188,11 @@ public final class AggressiveHandler { * @return The allowTolerance. */ public boolean isAllowTolerance() { - return allowTolerance; + boolean configSetting = true; + if(entity instanceof NPC){ + configSetting = ((NPC) entity).getDefinition().getConfiguration("can_tolerate", true); + } + return allowTolerance && configSetting; } /** diff --git a/Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt b/Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt index 7200d3c7d..17cb5783d 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt +++ b/Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt @@ -257,6 +257,7 @@ NPCConfigParser { "poisonous", "poison_immune", "facing_booth", + "can_tolerate", "water_npc"-> configs.put(it.key.toString(), it.value.toString().toBoolean()) else -> SystemLogger.logWarn("Unhandled key for npc config: ${it.key.toString()}") }