Fixed Cabin Fever charter discount; awarded via quest requirement system

Fixed charter boat exception
Fixed Mos Le'Harmless charter boat discount and prices
This commit is contained in:
Syndromeramo
2025-10-07 12:08:24 +00:00
committed by Ryan
parent b644a72bfc
commit 9eac712626
@@ -85,7 +85,7 @@ public final class ShipCharter {
*/ */
public static int getCost(final Player player, Destination destination) { public static int getCost(final Player player, Destination destination) {
int cost = destination.getCost(player, destination); int cost = destination.getCost(player, destination);
if (player.getQuestRepository().isComplete(Quests.CABIN_FEVER)) { if (hasRequirement(player, Quests.CABIN_FEVER)) {
cost -= Math.round((cost / 2.)); cost -= Math.round((cost / 2.));
} }
if (player.getEquipment().containsItem(RING_OF_CHAROS)) { if (player.getEquipment().containsItem(RING_OF_CHAROS)) {
@@ -139,7 +139,7 @@ public final class ShipCharter {
* @author 'Vexia * @author 'Vexia
*/ */
public enum Destination { public enum Destination {
CATHERBY(Location.create(2792, 3417, 1), 25, new int[] { 480, 0, 480, 625, 1600, 3250, 1000, 1600, 3200, 3400 }, Location.create(2797, 3414, 0), 3, 14), CATHERBY(Location.create(2792, 3417, 1), 25, new int[] { 480, 0, 480, 1250, 1600, 3250, 1000, 1600, 3200, 3400 }, Location.create(2797, 3414, 0), 3, 14),
PORT_PHASMATYS(Location.create(3705, 3503, 1), 24, new int[] { 3650, 3250, 1850, 0, 0, 0, 2050, 1850, 3200, 1100 }, Location.create(3702, 3502, 0), 2, 13) { PORT_PHASMATYS(Location.create(3705, 3503, 1), 24, new int[] { 3650, 3250, 1850, 0, 0, 0, 2050, 1850, 3200, 1100 }, Location.create(3702, 3502, 0), 2, 13) {
@Override @Override
public boolean checkTravel(Player player) { public boolean checkTravel(Player player) {
@@ -152,7 +152,7 @@ public final class ShipCharter {
return requireQuest(player, Quests.DRAGON_SLAYER, "to go there."); return requireQuest(player, Quests.DRAGON_SLAYER, "to go there.");
} }
}, },
BRIMHAVEN(Location.create(2763, 3238, 1), 28, new int[] { 0, 480, 480, 925, 400, 3650, 1600, 400, 3200, 3800 }, Location.create(2760, 3238, 0), 6, 17){ BRIMHAVEN(Location.create(2763, 3238, 1), 28, new int[] { 0, 480, 480, 1950, 400, 3650, 1600, 400, 3200, 3800 }, Location.create(2760, 3238, 0), 6, 17){
@Override @Override
public int getCost(Player player, Destination destination) { public int getCost(Player player, Destination destination) {
boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player); boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player);
@@ -160,7 +160,7 @@ public final class ShipCharter {
return super.getCost(player, destination); return super.getCost(player, destination);
} }
}, },
PORT_SARIM(Location.create(3038, 3189, 1), 30, new int[] { 1600, 1000, 0, 325, 1280, 650, 1280, 400, 3200, 1400 }, Location.create(3039, 3193, 0), 8, 19){ PORT_SARIM(Location.create(3038, 3189, 1), 30, new int[] { 1600, 1000, 0, 650, 1280, 650, 1280, 400, 3200, 1400 }, Location.create(3039, 3193, 0), 8, 19){
@Override @Override
public int getCost(Player player, Destination destination) { public int getCost(Player player, Destination destination) {
boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player); boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player);
@@ -168,14 +168,14 @@ public final class ShipCharter {
return super.getCost(player, destination); return super.getCost(player, destination);
} }
}, },
PORT_TYRAS(Location.create(2142, 3122, 0), 23, new int[] { 3200, 3200, 3200, 1600, 3200, 3200, 3200, 3200, 0, 3200 }, Location.create(2143, 3122, 0), 1, 12) { PORT_TYRAS(Location.create(2142, 3122, 0), 23, new int[] { 3200, 3200, 3200, 3200, 3200, 3200, 3200, 3200, 0, 3200 }, Location.create(2143, 3122, 0), 1, 12) {
@Override @Override
public boolean checkTravel(Player player) { public boolean checkTravel(Player player) {
return hasRequirement(player, Quests.REGICIDE); return hasRequirement(player, Quests.REGICIDE);
} }
}, },
KARAMJA(Location.create(2957, 3158, 1), 27, new int[] { 200, 480, 0, 225, 400, 1850, 0, 200, 3200, 2000 }, Location.create(2954, 3156, 0), 5, 16) { KARAMJA(Location.create(2957, 3158, 1), 27, new int[] { 200, 480, 0, 450, 400, 1850, 0, 200, 3200, 2000 }, Location.create(2954, 3156, 0), 5, 16) {
@Override @Override
public int getCost(Player player, Destination destination) { public int getCost(Player player, Destination destination) {
boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player); boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player);
@@ -183,7 +183,7 @@ public final class ShipCharter {
return super.getCost(player, destination); return super.getCost(player, destination);
} }
}, },
PORT_KHAZARD(Location.create(2674, 3141, 1), 29, new int[] { 1600, 1000, 0, 325, 180, 650, 1280, 400, 3200, 1400 }, Location.create(2674, 3144, 0), 7, 18){ PORT_KHAZARD(Location.create(2674, 3141, 1), 29, new int[] { 1600, 1000, 0, 2050, 180, 650, 1280, 400, 3200, 1400 }, Location.create(2674, 3144, 0), 7, 18){
@Override @Override
public int getCost(Player player, Destination destination) { public int getCost(Player player, Destination destination) {
boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player); boolean hasGloves = DiaryType.KARAMJA.hasRewardEquipment(player);
@@ -191,14 +191,14 @@ public final class ShipCharter {
return super.getCost(player, destination); return super.getCost(player, destination);
} }
}, },
SHIPYARD(Location.create(3001, 3032, 0), 26, new int[] { 400, 1600, 200, 225, 720, 1850, 400, 0, 3200, 900 }, Location.create(3001, 3032, 0), 4, 15) { SHIPYARD(Location.create(3001, 3032, 0), 26, new int[] { 400, 1600, 200, 450, 720, 1850, 400, 0, 3200, 900 }, Location.create(3001, 3032, 0), 4, 15) {
@Override @Override
public boolean checkTravel(Player player) { public boolean checkTravel(Player player) {
return requireQuest(player, Quests.THE_GRAND_TREE, "to go there."); return requireQuest(player, Quests.THE_GRAND_TREE, "to go there.");
} }
}, },
OO_GLOG(Location.create(2623, 2857, 0), 33, new int[] { 300, 3400, 2000, 550, 5000, 2800, 1400, 900, 3200, 0}, Location.create(2622, 2857, 0), 11, 22), OO_GLOG(Location.create(2623, 2857, 0), 33, new int[] { 300, 3400, 2000, 1100, 5000, 2800, 1400, 900, 3200, 0}, Location.create(2622, 2857, 0), 11, 22),
MOS_LE_HARMLESS(Location.create(3671, 2931, 0), 31, new int[] { 725, 625, 1025, 0, 1025, 0, 325, 275, 1600, 500 }, Location.create(3671, 2933, 0), 9, 20) { MOS_LE_HARMLESS(Location.create(3671, 2931, 0), 31, new int[] { 1550, 1250, 2050, 0, 2050, 0, 650, 550, 3200, 1000 }, Location.create(3671, 2933, 0), 9, 20) {
@Override @Override
public boolean checkTravel(Player player) { public boolean checkTravel(Player player) {
return hasRequirement(player, Quests.CABIN_FEVER); return hasRequirement(player, Quests.CABIN_FEVER);