Runecrafting skillcape now only consume a charge if the teleport took place
Improved navigation of the runecrafting skillcape teleport menu Runecrafting skillcape message improvement
This commit is contained in:
@@ -15,6 +15,7 @@ import core.ServerStore.Companion.getBoolean
|
|||||||
import core.ServerStore.Companion.getInt
|
import core.ServerStore.Companion.getInt
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import core.cache.def.impl.ItemDefinition
|
import core.cache.def.impl.ItemDefinition
|
||||||
|
import core.tools.END_DIALOGUE
|
||||||
import org.rs09.consts.Items
|
import org.rs09.consts.Items
|
||||||
import content.data.Quests
|
import content.data.Quests
|
||||||
|
|
||||||
@@ -48,7 +49,6 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)?
|
|||||||
player.dialogueInterpreter.sendDialogue("Your cape is still on cooldown.")
|
player.dialogueInterpreter.sendDialogue("Your cape is still on cooldown.")
|
||||||
} else {
|
} else {
|
||||||
player.dialogueInterpreter.open(509871233)
|
player.dialogueInterpreter.open(509871233)
|
||||||
store[player.name] = used + 1
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
SEED_ATTRACTION("cape_perks:seed_attract",{player ->
|
SEED_ATTRACTION("cape_perks:seed_attract",{player ->
|
||||||
@@ -223,54 +223,69 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)?
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun open(vararg args: Any?): Boolean {
|
override fun open(vararg args: Any?): Boolean {
|
||||||
options("Air","Mind","Water","Earth","More...")
|
altarList(0)
|
||||||
stage = 0
|
stage = 0
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||||
when(stage){
|
when(stage) {
|
||||||
0 -> when(buttonId){
|
0 -> when(buttonId) {
|
||||||
1 -> sendAltar(player, Altar.AIR)
|
1 -> sendAltar(player, Altar.AIR)
|
||||||
2 -> sendAltar(player, Altar.MIND)
|
2 -> sendAltar(player, Altar.MIND)
|
||||||
3 -> sendAltar(player, Altar.WATER)
|
3 -> sendAltar(player, Altar.WATER)
|
||||||
4 -> sendAltar(player, Altar.EARTH)
|
4 -> sendAltar(player, Altar.EARTH)
|
||||||
5 -> options("Fire","Body","Cosmic","Chaos","More...").also { stage++ }
|
5 -> altarList(++stage)
|
||||||
}
|
}
|
||||||
1 -> when(buttonId){
|
1 -> when(buttonId) {
|
||||||
1 -> sendAltar(player, Altar.FIRE)
|
1 -> altarList(--stage)
|
||||||
2 -> sendAltar(player, Altar.BODY)
|
2 -> sendAltar(player, Altar.FIRE)
|
||||||
3 -> sendAltar(player, Altar.COSMIC)
|
3 -> sendAltar(player, Altar.BODY)
|
||||||
4 -> sendAltar(player, Altar.CHAOS)
|
4 -> sendAltar(player, Altar.COSMIC)
|
||||||
5 -> options("Astral","Nature","Law","Death","More...").also { stage++ }
|
5 -> altarList(++stage)
|
||||||
}
|
}
|
||||||
2 -> when(buttonId){
|
2 -> when(buttonId) {
|
||||||
1 -> sendAltar(player, Altar.ASTRAL)
|
1 -> altarList(--stage)
|
||||||
2 -> sendAltar(player, Altar.NATURE)
|
2 -> sendAltar(player, Altar.CHAOS)
|
||||||
3 -> sendAltar(player, Altar.LAW)
|
3 -> sendAltar(player, Altar.ASTRAL)
|
||||||
4 -> sendAltar(player, Altar.DEATH)
|
4 -> sendAltar(player, Altar.NATURE)
|
||||||
5 -> options("Blood","Nevermind").also { stage++ }
|
5 -> altarList(++stage)
|
||||||
}
|
}
|
||||||
3 -> when(buttonId){
|
3 -> when(buttonId) {
|
||||||
1 -> sendAltar(player, Altar.BLOOD)
|
1 -> altarList(--stage)
|
||||||
2 -> end()
|
2 -> sendAltar(player, Altar.LAW)
|
||||||
|
3 -> sendAltar(player, Altar.DEATH)
|
||||||
|
4 -> sendAltar(player, Altar.BLOOD)
|
||||||
|
5 -> altarList(0).also { stage = 0 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendAltar(player: Player,altar: Altar){
|
fun altarList(stage: Int) {
|
||||||
|
when (stage) {
|
||||||
|
0 -> options("Air", "Mind", "Water", "Earth", "More...")
|
||||||
|
1 -> options("Back...", "Fire", "Body", "Cosmic", "More...")
|
||||||
|
2 -> options("Back...", "Chaos", "Astral", "Nature", "More...")
|
||||||
|
3 -> options("Back...", "Law", "Death", "Blood", "More...")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun sendAltar(player: Player,altar: Altar) {
|
||||||
end()
|
end()
|
||||||
if (altar == Altar.DEATH && !hasRequirement(player, Quests.MOURNINGS_END_PART_II)) return
|
if (altar == Altar.DEATH && !hasRequirement(player, Quests.MOURNINGS_END_PART_II)) return
|
||||||
if (altar == Altar.ASTRAL && !hasRequirement(player, Quests.LUNAR_DIPLOMACY)) return
|
if (altar == Altar.ASTRAL && !hasRequirement(player, Quests.LUNAR_DIPLOMACY)) return
|
||||||
if (altar == Altar.BLOOD && !hasRequirement(player, Quests.LEGACY_OF_SEERGAZE)) return
|
if (altar == Altar.BLOOD && !hasRequirement(player, Quests.LEGACY_OF_SEERGAZE)) return
|
||||||
if (altar == Altar.LAW && !ItemDefinition.canEnterEntrana(player)) {
|
if (altar == Altar.LAW && !ItemDefinition.canEnterEntrana(player)) {
|
||||||
sendItemDialogue(player, Items.SARADOMIN_SYMBOL_8055, "No weapons or armour are permitted on holy Entrana.")
|
sendMessage(player, "The power of Saradomin prevents you from taking armour or weaponry to Entrana.");
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var endLoc = if (altar == Altar.ASTRAL) Location.create(2151, 3864, 0) else altar.ruin.end
|
var endLoc = if (altar == Altar.ASTRAL) Location.create(2151, 3864, 0) else altar.ruin.end
|
||||||
|
|
||||||
|
val store = ServerStore.getArchive("daily-abyss-warp")
|
||||||
|
val used = store.getInt(player.name,0)
|
||||||
|
store[player.name] = used + 1
|
||||||
player.teleporter.send(endLoc, TeleportManager.TeleportType.TELE_OTHER)
|
player.teleporter.send(endLoc, TeleportManager.TeleportType.TELE_OTHER)
|
||||||
player.incrementAttribute("/save:cape_perks:abyssal_warp",-1)
|
player.incrementAttribute("/save:cape_perks:abyssal_warp",-1)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user