From 50ff5e1c3821469a593af75a1b3b5821eea39ee9 Mon Sep 17 00:00:00 2001 From: Avi Weinstock Date: Tue, 18 Jan 2022 08:38:11 +0000 Subject: [PATCH] Waterbirth Dungeon is cannonable Spinolyps only drain prayer if they hit, and always target ranged defence. --- CHANGELOG | 2 ++ .../java/core/game/content/zone/wbisland/SpinolypNPC.java | 8 +++++++- .../game/content/zone/wbisland/WaterBirthDungeonZone.java | 2 +- .../game/node/entity/combat/handlers/RangeSwingHandler.kt | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 4918f9e15..0ca95a8bd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -111,3 +111,5 @@ - Removed regular bones from wolf drop table - Lethimyr - Fix Gertrude's Cat quest not completing - ryannathans - Fix missing special attack damage modifiers for range and melee attacks - vk +- Waterbirth Dungeon is now cannonable - aweinstock +- Spinolyps only drain prayer if they hit, and always target ranged defence (plus null reference fix) - aweinstock diff --git a/Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java b/Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java index e374379c4..a70effa49 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java +++ b/Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java @@ -122,6 +122,12 @@ public final class SpinolypNPC extends AbstractNPC { return 12; } + @Override + public int calculateDefence(Entity v, Entity e) { + // Spinolyps' attack always targets ranged defence + return CombatStyle.RANGE.getSwingHandler().calculateDefence(v, e); + } + @Override public void visualize(Entity entity, Entity victim, BattleState state) { super.visualize(entity, victim, state); @@ -137,7 +143,7 @@ public final class SpinolypNPC extends AbstractNPC { @Override public void impact(Entity entity, Entity victim, BattleState state) { super.impact(entity, victim, state); - if (super.getType() == CombatStyle.MAGIC) { + if (super.getType() == CombatStyle.MAGIC && state.getEstimatedHit() > 0) { victim.getSkills().decrementPrayerPoints(1); } else { if (RandomFunction.random(20) == 5) { diff --git a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java b/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java index eeea49007..2575a5563 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java +++ b/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java @@ -48,7 +48,7 @@ public final class WaterBirthDungeonZone extends MapZone implements Plugin