From 9b3042b84945d70a67c8018c5d362c6347d07672 Mon Sep 17 00:00:00 2001 From: Tooze Date: Sun, 19 Apr 2026 12:27:12 -0400 Subject: [PATCH] egg cluster loot on Peannace monster deaths. --- .../minigame/barbassault/arena/BarbassaultSession.kt | 5 +++-- .../minigame/barbassault/arena/Npcs/PenanceFighterNPC.kt | 2 +- .../minigame/barbassault/arena/Npcs/PenanceHealerNPC.kt | 1 + .../minigame/barbassault/arena/Npcs/PenanceHelper.kt | 7 +++++-- .../minigame/barbassault/arena/Npcs/PenanceRangerNPC.kt | 1 + .../minigame/barbassault/arena/Npcs/PenanceRunnerNPC.kt | 1 + 6 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Server/src/main/content/minigame/barbassault/arena/BarbassaultSession.kt b/Server/src/main/content/minigame/barbassault/arena/BarbassaultSession.kt index b3e40a0db..49d52fc19 100644 --- a/Server/src/main/content/minigame/barbassault/arena/BarbassaultSession.kt +++ b/Server/src/main/content/minigame/barbassault/arena/BarbassaultSession.kt @@ -269,8 +269,6 @@ class BarbassaultSession( val activity: BarbassaultActivity ? = null) :LogoutLi return arrayOf() } - - override fun getRestrictions(): Array = arrayOf( ZoneRestriction.CANNON, ZoneRestriction.FIRES, @@ -321,6 +319,9 @@ class BarbassaultSession( val activity: BarbassaultActivity ? = null) :LogoutLi eggCannonNpcEast = sessionNPCSpawn( NPCs.EGG_LAUNCHER_5026, base.transform(40, 34, 0), Direction.NORTH ) } + private fun clearGroundItems(){ + //BAgroundItems + } private fun giveRoleItems(player: Player, role: BarbRole) { val levels = player.getBarbLevels() diff --git a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceFighterNPC.kt b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceFighterNPC.kt index 2558ba245..3a92a691c 100644 --- a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceFighterNPC.kt +++ b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceFighterNPC.kt @@ -74,9 +74,9 @@ class PenanceFighterNPC : NPCBehavior(*PENANCE_FIGHTER_IDS.toIntArray()) { override fun onDeathFinished(self: NPC, killer: Entity) { val player = killer as? Player ?: return - dropPenanceEggCluster(killer,self) val session = player.baSession ?: return + dropPenanceEggCluster(killer,self) session.eventBus.emit(BarbAssEvent.NPCDied(self,player)) super.onDeathFinished(self, killer) } diff --git a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHealerNPC.kt b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHealerNPC.kt index af42658ca..95bb3a17f 100644 --- a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHealerNPC.kt +++ b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHealerNPC.kt @@ -37,6 +37,7 @@ class PenanceHealerNPC : NPCBehavior(*PENANCE_HEALER_IDS.toIntArray()) { val player = killer as? Player ?: return val session = player.baSession ?: return + dropPenanceEggCluster(killer,self) session.eventBus.emit(BarbAssEvent.NPCDied(self,player)) } diff --git a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHelper.kt b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHelper.kt index f2685c476..ddc525f63 100644 --- a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHelper.kt +++ b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceHelper.kt @@ -1,6 +1,7 @@ package content.minigame.barbassault.arena.Npcs +import content.minigame.barbassault.baSession import core.api.hasLineOfSight import core.api.produceGroundItem import core.game.node.entity.npc.NPC @@ -20,11 +21,13 @@ fun dropPenanceEggCluster(killer: Player, npc: NPC) { for (i in eggs.indices) { val tile = tiles[i] - produceGroundItem(killer, eggs[i], 1, tile).apply { - decayTime = 10000 + val egg = produceGroundItem(killer, eggs[i], 1, tile).apply { + //todo Find way to make eggs not decay and visible to all + decayTime = 100 forceVisible = true isRemainPrivate = false } + killer.baSession?.BAgroundItems?.add(egg) } } diff --git a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRangerNPC.kt b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRangerNPC.kt index 770b62ed0..8c610fd76 100644 --- a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRangerNPC.kt +++ b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRangerNPC.kt @@ -64,6 +64,7 @@ class PenanceRangerNPC : NPCBehavior(*PENANCE_RANGER_IDS.toIntArray()) { val player = killer as? Player ?: return val session = player.baSession ?: return + dropPenanceEggCluster(killer,self) session.eventBus.emit(BarbAssEvent.NPCDied(self,player)) } diff --git a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRunnerNPC.kt b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRunnerNPC.kt index 0ae6620bf..8d76ab723 100644 --- a/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRunnerNPC.kt +++ b/Server/src/main/content/minigame/barbassault/arena/Npcs/PenanceRunnerNPC.kt @@ -67,6 +67,7 @@ class PenanceRunnerNPC : NPCBehavior(*PENANCE_RUNNER_IDS.toIntArray()) { val player = killer as? Player ?: return val session = player.baSession ?: return + dropPenanceEggCluster(killer,self) session.eventBus.emit(BarbAssEvent.NPCDied(self,player)) } }