Fixed fishing trawler bugs

Optimised fishing trawler reward logic
This commit is contained in:
Player Name 2024-07-13 02:58:24 +00:00 committed by Ryan
parent 370d9ef423
commit 611660cbc3
3 changed files with 10 additions and 6 deletions

View file

@ -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
}

View file

@ -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))

View file

@ -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)