mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-11 09:00:23 -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, _ ->
|
on(REWARD_NET, IntType.SCENERY, "inspect"){ player, _ ->
|
||||||
val session: FishingTrawlerSession? = player.getAttribute("ft-session",null)
|
val rolls = player.getAttribute("/save:ft-rolls", 0)
|
||||||
if(session == null || session.boatSank){
|
if (rolls == 0) {
|
||||||
player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.GUILTY,"I'd better not go stealing other people's fish.")
|
player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.GUILTY,"I'd better not go stealing other people's fish.")
|
||||||
return@on true
|
return@on true
|
||||||
}
|
}
|
||||||
|
|
@ -162,9 +162,8 @@ class NetLootDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun open(vararg args: Any?): Boolean {
|
override fun open(vararg args: Any?): Boolean {
|
||||||
session = player.getAttribute("ft-session",null)
|
rolls = player.getAttribute("/save:ft-rolls", 0)
|
||||||
if(session == null) return false
|
if (rolls == 0) return false
|
||||||
rolls = ceil(session!!.fishAmount / session!!.players.size.toDouble()).toInt()
|
|
||||||
player.dialogueInterpreter.sendOptions("Skip Junk Items?","Yes","No")
|
player.dialogueInterpreter.sendOptions("Skip Junk Items?","Yes","No")
|
||||||
stage = 0
|
stage = 0
|
||||||
return true
|
return true
|
||||||
|
|
@ -177,7 +176,7 @@ class NetLootDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin
|
||||||
2 -> TrawlerLoot.addLootAndMessage(player, level, rolls, false)
|
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.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()
|
end()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ import core.game.system.command.sets.STATS_BASE
|
||||||
import core.tools.secondsToTicks
|
import core.tools.secondsToTicks
|
||||||
import core.tools.ticksToSeconds
|
import core.tools.ticksToSeconds
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
import kotlin.math.ceil
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -153,6 +154,9 @@ class FishingTrawlerSession(val activity: FishingTrawlerActivity? = null) : MapA
|
||||||
player.interfaceManager.closeOverlay()
|
player.interfaceManager.closeOverlay()
|
||||||
player.properties.teleportLocation = Location.create(2666, 3162, 0)
|
player.properties.teleportLocation = Location.create(2666, 3162, 0)
|
||||||
player.incrementAttribute("/save:$STATS_BASE:$FISHING_TRAWLER_GAMES_WON")
|
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")
|
clearLogoutListener(player, "ft-logout")
|
||||||
}
|
}
|
||||||
session.zone.unregister(getRegionBorders(session.region.id))
|
session.zone.unregister(getRegionBorders(session.region.id))
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ object TrawlerLoot {
|
||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun addLootAndMessage(player: Player, fishLevel: Int, rolls: Int, skipJunk: Boolean) {
|
fun addLootAndMessage(player: Player, fishLevel: Int, rolls: Int, skipJunk: Boolean) {
|
||||||
|
if (rolls < 1) return
|
||||||
val frequencyList = listOf<MutableMap<String, Int>>(HashMap(), HashMap(), HashMap())
|
val frequencyList = listOf<MutableMap<String, Int>>(HashMap(), HashMap(), HashMap())
|
||||||
getLoot(fishLevel, rolls, skipJunk).forEach {
|
getLoot(fishLevel, rolls, skipJunk).forEach {
|
||||||
if (!player.bank.add(it)) GroundItemManager.create(it, player)
|
if (!player.bank.add(it)) GroundItemManager.create(it, player)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue