mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Fixed fishing trawler teleport and random event issues
This commit is contained in:
parent
5237051e71
commit
0e6b4ad816
3 changed files with 16 additions and 4 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
package content.minigame.fishingtrawler
|
package content.minigame.fishingtrawler
|
||||||
|
|
||||||
|
import core.api.MapArea
|
||||||
import core.game.node.entity.player.Player
|
import core.game.node.entity.player.Player
|
||||||
import core.game.system.task.Pulse
|
import core.game.system.task.Pulse
|
||||||
import core.game.world.GameWorld
|
import core.game.world.GameWorld
|
||||||
|
|
@ -10,6 +11,7 @@ import core.plugin.Initializable
|
||||||
import core.tools.ticksToSeconds
|
import core.tools.ticksToSeconds
|
||||||
import core.game.activity.ActivityManager
|
import core.game.activity.ActivityManager
|
||||||
import core.game.activity.ActivityPlugin
|
import core.game.activity.ActivityPlugin
|
||||||
|
import core.game.world.map.zone.ZoneBorders
|
||||||
import core.tools.colorize
|
import core.tools.colorize
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -17,13 +19,14 @@ import core.tools.colorize
|
||||||
* Handles the fishing trawler "waiting room"
|
* Handles the fishing trawler "waiting room"
|
||||||
* @author Ceikry
|
* @author Ceikry
|
||||||
*/
|
*/
|
||||||
private val WAIT_TIME = if(GameWorld.settings?.isDevMode == true) 10 else 203
|
private val WAIT_TIME = if(GameWorld.settings?.isDevMode == true) 30 else 203
|
||||||
private val waitingPlayers = ArrayList<Player>()
|
private val waitingPlayers = ArrayList<Player>()
|
||||||
|
private val ftWaitingArea = arrayOf(ZoneBorders(2668, 3165, 2675, 3184))
|
||||||
private val sessions = ArrayList<FishingTrawlerSession>()
|
private val sessions = ArrayList<FishingTrawlerSession>()
|
||||||
private var activity: FishingTrawlerActivity? = null
|
private var activity: FishingTrawlerActivity? = null
|
||||||
private var nextStart = GameWorld.ticks + WAIT_TIME
|
private var nextStart = GameWorld.ticks + WAIT_TIME
|
||||||
@Initializable
|
@Initializable
|
||||||
class FishingTrawlerActivity : ActivityPlugin("fishing trawler",false,false,true,ZoneRestriction.CANNON,ZoneRestriction.FIRES,ZoneRestriction.FOLLOWERS,ZoneRestriction.RANDOM_EVENTS) {
|
class FishingTrawlerActivity : ActivityPlugin("fishing trawler",false,false,true,ZoneRestriction.CANNON,ZoneRestriction.FIRES,ZoneRestriction.FOLLOWERS,ZoneRestriction.RANDOM_EVENTS), MapArea {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
activity = this
|
activity = this
|
||||||
|
|
@ -86,4 +89,12 @@ class FishingTrawlerActivity : ActivityPlugin("fishing trawler",false,false,true
|
||||||
override fun getSpawnLocation(): Location {
|
override fun getSpawnLocation(): Location {
|
||||||
return Location.create(2667, 3161, 0)
|
return Location.create(2667, 3161, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun defineAreaBorders(): Array<ZoneBorders> {
|
||||||
|
return ftWaitingArea
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getRestrictions(): Array<ZoneRestriction> {
|
||||||
|
return arrayOf(ZoneRestriction.RANDOM_EVENTS, ZoneRestriction.TELEPORT)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -16,6 +16,7 @@ import core.game.node.entity.player.Player;
|
||||||
import core.game.node.entity.player.link.TeleportManager;
|
import core.game.node.entity.player.link.TeleportManager;
|
||||||
import core.game.node.entity.skill.Skills;
|
import core.game.node.entity.skill.Skills;
|
||||||
import core.game.system.task.Pulse;
|
import core.game.system.task.Pulse;
|
||||||
|
import core.game.world.map.zone.ZoneRestriction;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import core.game.world.GameWorld;
|
import core.game.world.GameWorld;
|
||||||
import core.game.world.map.Location;
|
import core.game.world.map.Location;
|
||||||
|
|
@ -928,7 +929,7 @@ public abstract class Entity extends Node {
|
||||||
* @return {@code True} if so.
|
* @return {@code True} if so.
|
||||||
*/
|
*/
|
||||||
public boolean isTeleBlocked() {
|
public boolean isTeleBlocked() {
|
||||||
return timers.getTimer("teleblock") != null || getLocks().isTeleportLocked();
|
return timers.getTimer("teleblock") != null || getLocks().isTeleportLocked() || getZoneMonitor().isRestricted(ZoneRestriction.TELEPORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ public class TeleportManager {
|
||||||
if (!entity.getZoneMonitor().teleport(teleportType, null)) {
|
if (!entity.getZoneMonitor().teleport(teleportType, null)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (teleportType != -1 && (entity.isTeleBlocked() || entity.getZoneMonitor().isRestricted(ZoneRestriction.TELEPORT))) {
|
if (teleportType != -1 && entity.isTeleBlocked()) {
|
||||||
if (entity.isPlayer())
|
if (entity.isPlayer())
|
||||||
entity.asPlayer().sendMessage("A magical force has stopped you from teleporting.");
|
entity.asPlayer().sendMessage("A magical force has stopped you from teleporting.");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue