From ad60b443e1850f35caa04badfa27b35b74b76fd6 Mon Sep 17 00:00:00 2001 From: Mazo Date: Wed, 21 Aug 2019 15:33:26 +0100 Subject: [PATCH] Few small tweaks to silo / vehicle capacitor displays suggested by Sounours that I forgot about (#266) --- .../serverobject/resourcesilo/ResourceSiloControl.scala | 2 +- common/src/test/scala/objects/ResourceSiloTest.scala | 8 ++++---- pslogin/src/main/scala/WorldSessionActor.scala | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala b/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala index 623150316..736d409f5 100644 --- a/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala +++ b/common/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala @@ -55,7 +55,7 @@ class ResourceSiloControl(resourceSilo : ResourceSilo) extends Actor with Factio } - val ntuBarLevel = scala.math.round((resourceSilo.ChargeLevel.toFloat / resourceSilo.MaximumCharge.toFloat) * 10) + val ntuBarLevel = scala.math.ceil((resourceSilo.ChargeLevel.toFloat / resourceSilo.MaximumCharge.toFloat) * 10).toInt // Only send updated capacitor display value to all clients if it has actually changed if(resourceSilo.CapacitorDisplay != ntuBarLevel) { log.trace(s"Silo ${resourceSilo.GUID} NTU bar level has changed from ${resourceSilo.CapacitorDisplay} to $ntuBarLevel") diff --git a/common/src/test/scala/objects/ResourceSiloTest.scala b/common/src/test/scala/objects/ResourceSiloTest.scala index ab2004665..fc2f8d2bb 100644 --- a/common/src/test/scala/objects/ResourceSiloTest.scala +++ b/common/src/test/scala/objects/ResourceSiloTest.scala @@ -160,7 +160,7 @@ class ResourceSiloControlUpdate1Test extends ActorTest { val reply1 = probe1.receiveOne(500 milliseconds) val reply2 = probe2.receiveOne(500 milliseconds) assert(obj.ChargeLevel == 305) - assert(obj.CapacitorDisplay == 3) + assert(obj.CapacitorDisplay == 4) assert(reply1.isInstanceOf[AvatarServiceMessage]) assert(reply1.asInstanceOf[AvatarServiceMessage].forChannel == "nowhere") assert(reply1.asInstanceOf[AvatarServiceMessage] @@ -170,7 +170,7 @@ class ResourceSiloControlUpdate1Test extends ActorTest { assert(reply1.asInstanceOf[AvatarServiceMessage] .actionMessage.asInstanceOf[AvatarAction.PlanetsideAttribute].attribute_type == 45) assert(reply1.asInstanceOf[AvatarServiceMessage] - .actionMessage.asInstanceOf[AvatarAction.PlanetsideAttribute].attribute_value == 3) + .actionMessage.asInstanceOf[AvatarAction.PlanetsideAttribute].attribute_value == 4) assert(reply2.isInstanceOf[Building.SendMapUpdate]) @@ -231,7 +231,7 @@ class ResourceSiloControlUpdate2Test extends ActorTest { val reply1 = probe1.receiveOne(500 milliseconds) val reply2 = probe2.receiveOne(500 milliseconds) assert(obj.ChargeLevel == 205) - assert(obj.CapacitorDisplay == 2) + assert(obj.CapacitorDisplay == 3) assert(reply1.isInstanceOf[AvatarServiceMessage]) assert(reply1.asInstanceOf[AvatarServiceMessage].forChannel == "nowhere") assert(reply1.asInstanceOf[AvatarServiceMessage] @@ -241,7 +241,7 @@ class ResourceSiloControlUpdate2Test extends ActorTest { assert(reply1.asInstanceOf[AvatarServiceMessage] .actionMessage.asInstanceOf[AvatarAction.PlanetsideAttribute].attribute_type == 45) assert(reply1.asInstanceOf[AvatarServiceMessage] - .actionMessage.asInstanceOf[AvatarAction.PlanetsideAttribute].attribute_value == 2) + .actionMessage.asInstanceOf[AvatarAction.PlanetsideAttribute].attribute_value == 3) assert(reply2.isInstanceOf[Building.SendMapUpdate]) diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index 31c9161eb..4a0e9e838 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -2572,7 +2572,7 @@ class WorldSessionActor extends Actor with MDCContextAware { if(vehicle.Capacitor < vehicle.Definition.MaximumCapacitor) { // Charging vehicle.Capacitor += 100 - sendResponse(PlanetsideAttributeMessage(vehicle.GUID, 45, scala.math.round((vehicle.Capacitor.toFloat / vehicle.Definition.MaximumCapacitor.toFloat) * 10))) // set ntu on vehicle UI + sendResponse(PlanetsideAttributeMessage(vehicle.GUID, 45, scala.math.ceil((vehicle.Capacitor.toFloat / vehicle.Definition.MaximumCapacitor.toFloat) * 10).toInt)) // set ntu on vehicle UI avatarService ! AvatarServiceMessage(continent.Id, AvatarAction.PlanetsideAttribute(vehicle.GUID, 52, 1L)) // panel glow on avatarService ! AvatarServiceMessage(continent.Id, AvatarAction.PlanetsideAttribute(vehicle.GUID, 49, 1L)) // orb particle effect on @@ -2580,7 +2580,7 @@ class WorldSessionActor extends Actor with MDCContextAware { } else { // Fully charged - sendResponse(PlanetsideAttributeMessage(vehicle.GUID, 45, scala.math.round((vehicle.Capacitor.toFloat / vehicle.Definition.MaximumCapacitor.toFloat) * 10).toInt)) // set ntu on vehicle UI + sendResponse(PlanetsideAttributeMessage(vehicle.GUID, 45, scala.math.ceil((vehicle.Capacitor.toFloat / vehicle.Definition.MaximumCapacitor.toFloat) * 10).toInt)) // set ntu on vehicle UI // Turning off glow/orb effects on ANT doesn't seem to work when deployed. Try to undeploy ANT from server side context.system.scheduler.scheduleOnce(vehicle.UndeployTime milliseconds, vehicle.Actor, Deployment.TryUndeploy(DriveState.Undeploying)) @@ -2608,7 +2608,7 @@ class WorldSessionActor extends Actor with MDCContextAware { vehicle.Capacitor -= chargeToDeposit silo.Actor ! ResourceSilo.UpdateChargeLevel(chargeToDeposit) avatarService ! AvatarServiceMessage(continent.Id, AvatarAction.PlanetsideAttribute(silo_guid, 49, 1L)) // panel glow on & orb particles on - sendResponse(PlanetsideAttributeMessage(vehicle.GUID, 45, scala.math.round((vehicle.Capacitor.toFloat / vehicle.Definition.MaximumCapacitor.toFloat) * 10))) // set ntu on vehicle UI + sendResponse(PlanetsideAttributeMessage(vehicle.GUID, 45, scala.math.ceil((vehicle.Capacitor.toFloat / vehicle.Definition.MaximumCapacitor.toFloat) * 10).toInt)) // set ntu on vehicle UI //todo: grant BEP to user //todo: grant BEP to squad in range