From ed09a9a4e5deece8f620186a9a329ec8c5a8f966 Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Thu, 23 Jan 2025 13:31:21 -0500 Subject: [PATCH] reward contributors still in zone --- .../session/support/SessionAvatarHandlers.scala | 2 +- .../MajorFacilityHackParticipation.scala | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/scala/net/psforever/actors/session/support/SessionAvatarHandlers.scala b/src/main/scala/net/psforever/actors/session/support/SessionAvatarHandlers.scala index 1fa6bf7cb..a85c2dcfe 100644 --- a/src/main/scala/net/psforever/actors/session/support/SessionAvatarHandlers.scala +++ b/src/main/scala/net/psforever/actors/session/support/SessionAvatarHandlers.scala @@ -119,7 +119,7 @@ class SessionAvatarHandlers( Some(modifiedExp) }*/ //if not in squad (temporary) - exp.ToDatabase.reportFacilityCapture(charId, buildingId, zoneNumber, cep, expType="bep") + exp.ToDatabase.reportFacilityCapture(charId, zoneNumber, buildingId, cep, expType="bep") avatarActor ! AvatarActor.AwardFacilityCaptureBep(cep) } diff --git a/src/main/scala/net/psforever/objects/serverobject/structures/participation/MajorFacilityHackParticipation.scala b/src/main/scala/net/psforever/objects/serverobject/structures/participation/MajorFacilityHackParticipation.scala index 634ad019f..230aa2226 100644 --- a/src/main/scala/net/psforever/objects/serverobject/structures/participation/MajorFacilityHackParticipation.scala +++ b/src/main/scala/net/psforever/objects/serverobject/structures/participation/MajorFacilityHackParticipation.scala @@ -251,11 +251,14 @@ final case class MajorFacilityHackParticipation(building: Building) extends Faci overallTimeMultiplier * Config.app.game.experience.cep.rate + competitionBonus ).toLong - //8. reward participants - //Classically, only players in the SOI are rewarded, and the llu runner too + //8. reward participants that are still in the zone val hackerId = hacker.CharId + val contributingPlayers = contributionVictor + .filter { case (player, _, _) => player.Zone.id == building.Zone.id } + .map { case (player, _, _) => player } + .toList //terminal hacker (always cep) - if (playersInSoi.exists(_.CharId == hackerId) && flagCarrier.map(_.CharId).getOrElse(0L) != hackerId) { + if (contributingPlayers.exists(_.CharId == hackerId) && flagCarrier.map(_.CharId).getOrElse(0L) != hackerId) { ToDatabase.reportFacilityCapture( hackerId, zoneNumber, @@ -266,7 +269,7 @@ final case class MajorFacilityHackParticipation(building: Building) extends Faci events ! AvatarServiceMessage(hacker.Name, AvatarAction.AwardCep(hackerId, finalCep)) } //bystanders (cep if squad leader, bep otherwise) - playersInSoi + contributingPlayers .filterNot { _.CharId == hackerId } .foreach { player => val charId = player.CharId