mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-10 10:20:41 -07:00
Fixed fishing trawler bugs
Optimised fishing trawler reward logic
This commit is contained in:
parent
370d9ef423
commit
611660cbc3
3 changed files with 10 additions and 6 deletions
|
|
@ -74,8 +74,8 @@ class FishingTrawlerInteractionHandler : InteractionListener {
|
|||
}
|
||||
|
||||
on(REWARD_NET, IntType.SCENERY, "inspect"){ player, _ ->
|
||||
val session: FishingTrawlerSession? = player.getAttribute("ft-session",null)
|
||||
if(session == null || session.boatSank){
|
||||
val rolls = player.getAttribute("/save:ft-rolls", 0)
|
||||
if (rolls == 0) {
|
||||
player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.GUILTY,"I'd better not go stealing other people's fish.")
|
||||
return@on true
|
||||
}
|
||||
|
|
@ -162,9 +162,8 @@ class NetLootDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin
|
|||
}
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
session = player.getAttribute("ft-session",null)
|
||||
if(session == null) return false
|
||||
rolls = ceil(session!!.fishAmount / session!!.players.size.toDouble()).toInt()
|
||||
rolls = player.getAttribute("/save:ft-rolls", 0)
|
||||
if (rolls == 0) return false
|
||||
player.dialogueInterpreter.sendOptions("Skip Junk Items?","Yes","No")
|
||||
stage = 0
|
||||
return true
|
||||
|
|
@ -177,7 +176,7 @@ class NetLootDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin
|
|||
2 -> TrawlerLoot.addLootAndMessage(player, level, rolls, false)
|
||||
}
|
||||
player.skills.addExperience(Skills.FISHING,(((0.015 * player.skills.getLevel(Skills.FISHING))) * player.skills.getLevel(Skills.FISHING)) * rolls)
|
||||
player.removeAttribute("ft-session")
|
||||
player.removeAttribute("ft-rolls")
|
||||
end()
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import core.game.system.command.sets.STATS_BASE
|
|||
import core.tools.secondsToTicks
|
||||
import core.tools.ticksToSeconds
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlin.math.ceil
|
||||
import kotlin.random.Random
|
||||
|
||||
|
||||
|
|
@ -153,6 +154,9 @@ class FishingTrawlerSession(val activity: FishingTrawlerActivity? = null) : MapA
|
|||
player.interfaceManager.closeOverlay()
|
||||
player.properties.teleportLocation = Location.create(2666, 3162, 0)
|
||||
player.incrementAttribute("/save:$STATS_BASE:$FISHING_TRAWLER_GAMES_WON")
|
||||
val rolls = ceil(session.fishAmount / session.players.size.toDouble()).toInt()
|
||||
player.removeAttribute("ft-session")
|
||||
player.setAttribute("/save:ft-rolls", rolls)
|
||||
clearLogoutListener(player, "ft-logout")
|
||||
}
|
||||
session.zone.unregister(getRegionBorders(session.region.id))
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ object TrawlerLoot {
|
|||
*/
|
||||
@JvmStatic
|
||||
fun addLootAndMessage(player: Player, fishLevel: Int, rolls: Int, skipJunk: Boolean) {
|
||||
if (rolls < 1) return
|
||||
val frequencyList = listOf<MutableMap<String, Int>>(HashMap(), HashMap(), HashMap())
|
||||
getLoot(fishLevel, rolls, skipJunk).forEach {
|
||||
if (!player.bank.add(it)) GroundItemManager.create(it, player)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue