From 71b8c011c93a3c3c0699ca0d2c2389119a81fa34 Mon Sep 17 00:00:00 2001 From: Fate-JH Date: Wed, 6 Apr 2022 13:49:17 -0400 Subject: [PATCH] Auto Repair 0.05 (#991) * all 0.5 drains are changed to 0.05 drains * once again, removing the x2 drain multiplier --- .../psforever/objects/GlobalDefinitions.scala | 43 +++++++++---------- .../repair/AmenityAutoRepair.scala | 4 +- .../resourcesilo/ResourceSiloControl.scala | 4 +- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala index 38522f159..1bf221166 100644 --- a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala +++ b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala @@ -9300,7 +9300,7 @@ object GlobalDefinitions { spawn_terminal.Name = "spawn_terminal" spawn_terminal.Damageable = false spawn_terminal.Repairable = false - spawn_terminal.autoRepair = AutoRepairStats(1, 5000, 200, 1) //TODO amount and drain are default? undefined? + spawn_terminal.autoRepair = AutoRepairStats(1, 5000, 200, 1) //TODO amount and drain are default value? order_terminal.Name = "order_terminal" order_terminal.Tab += 0 -> OrderTerminalDefinition.EquipmentPage( @@ -9319,7 +9319,7 @@ object GlobalDefinitions { order_terminal.MaxHealth = 500 order_terminal.Damageable = true order_terminal.Repairable = true - order_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + order_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) order_terminal.RepairIfDestroyed = true order_terminal.Subtract.Damage1 = 8 order_terminal.Geometry = GeometryForm.representByCylinder(radius = 0.8438f, height = 1.3f) @@ -9384,7 +9384,7 @@ object GlobalDefinitions { cert_terminal.MaxHealth = 500 cert_terminal.Damageable = true cert_terminal.Repairable = true - cert_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + cert_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) cert_terminal.RepairIfDestroyed = true cert_terminal.Subtract.Damage1 = 8 cert_terminal.Geometry = GeometryForm.representByCylinder(radius = 0.66405f, height = 1.09374f) @@ -9393,7 +9393,7 @@ object GlobalDefinitions { implant_terminal_mech.MaxHealth = 1500 //TODO 1000; right now, 1000 (mech) + 500 (interface) implant_terminal_mech.Damageable = true implant_terminal_mech.Repairable = true - implant_terminal_mech.autoRepair = AutoRepairStats(1.6f, 5000, 2400, 0.5f) + implant_terminal_mech.autoRepair = AutoRepairStats(1.6f, 5000, 2400, 0.05f) implant_terminal_mech.RepairIfDestroyed = true implant_terminal_mech.RadiationShielding = 0.5f implant_terminal_mech.Geometry = GeometryForm.representByCylinder(radius = 2.7813f, height = 6.4375f) @@ -9403,8 +9403,7 @@ object GlobalDefinitions { implant_terminal_interface.MaxHealth = 500 implant_terminal_interface.Damageable = false //TODO true implant_terminal_interface.Repairable = true - implant_terminal_interface.autoRepair = - AutoRepairStats(1, 5000, 200, 1) //TODO amount and drain are default? undefined? + implant_terminal_interface.autoRepair = AutoRepairStats(1, 5000, 200, 1) //TODO amount and drain are default value? implant_terminal_interface.RepairIfDestroyed = true //TODO will need geometry when Damageable = true @@ -9417,7 +9416,7 @@ object GlobalDefinitions { ground_vehicle_terminal.MaxHealth = 500 ground_vehicle_terminal.Damageable = true ground_vehicle_terminal.Repairable = true - ground_vehicle_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + ground_vehicle_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) ground_vehicle_terminal.RepairIfDestroyed = true ground_vehicle_terminal.Subtract.Damage1 = 8 ground_vehicle_terminal.Geometry = vterm @@ -9431,7 +9430,7 @@ object GlobalDefinitions { air_vehicle_terminal.MaxHealth = 500 air_vehicle_terminal.Damageable = true air_vehicle_terminal.Repairable = true - air_vehicle_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + air_vehicle_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) air_vehicle_terminal.RepairIfDestroyed = true air_vehicle_terminal.Subtract.Damage1 = 8 air_vehicle_terminal.Geometry = vterm @@ -9445,7 +9444,7 @@ object GlobalDefinitions { dropship_vehicle_terminal.MaxHealth = 500 dropship_vehicle_terminal.Damageable = true dropship_vehicle_terminal.Repairable = true - dropship_vehicle_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + dropship_vehicle_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) dropship_vehicle_terminal.RepairIfDestroyed = true dropship_vehicle_terminal.Subtract.Damage1 = 8 dropship_vehicle_terminal.Geometry = vterm @@ -9459,7 +9458,7 @@ object GlobalDefinitions { vehicle_terminal_combined.MaxHealth = 500 vehicle_terminal_combined.Damageable = true vehicle_terminal_combined.Repairable = true - vehicle_terminal_combined.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + vehicle_terminal_combined.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) vehicle_terminal_combined.RepairIfDestroyed = true vehicle_terminal_combined.Subtract.Damage1 = 8 vehicle_terminal_combined.Geometry = vterm @@ -9473,7 +9472,7 @@ object GlobalDefinitions { vanu_air_vehicle_term.MaxHealth = 500 vanu_air_vehicle_term.Damageable = true vanu_air_vehicle_term.Repairable = true - vanu_air_vehicle_term.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + vanu_air_vehicle_term.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) vanu_air_vehicle_term.RepairIfDestroyed = true vanu_air_vehicle_term.Subtract.Damage1 = 8 @@ -9486,7 +9485,7 @@ object GlobalDefinitions { vanu_vehicle_term.MaxHealth = 500 vanu_vehicle_term.Damageable = true vanu_vehicle_term.Repairable = true - vanu_vehicle_term.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + vanu_vehicle_term.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) vanu_vehicle_term.RepairIfDestroyed = true vanu_vehicle_term.Subtract.Damage1 = 8 @@ -9507,7 +9506,7 @@ object GlobalDefinitions { bfr_terminal.MaxHealth = 500 bfr_terminal.Damageable = true bfr_terminal.Repairable = true - bfr_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + bfr_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) bfr_terminal.RepairIfDestroyed = true bfr_terminal.Subtract.Damage1 = 8 bfr_terminal.Geometry = GeometryForm.representByCylinder(radius = 0.92185f, height = 2.64693f) @@ -9519,7 +9518,7 @@ object GlobalDefinitions { respawn_tube.Damageable = true respawn_tube.DamageableByFriendlyFire = false respawn_tube.Repairable = true - respawn_tube.autoRepair = AutoRepairStats(1.6f, 10000, 2400, 1) + respawn_tube.autoRepair = AutoRepairStats(1.6f, 10000, 2400, 1) //TODO drain is default value? respawn_tube.RepairIfDestroyed = true respawn_tube.Subtract.Damage1 = 8 respawn_tube.Geometry = GeometryForm.representByCylinder(radius = 0.9336f, height = 2.84375f) @@ -9531,7 +9530,7 @@ object GlobalDefinitions { respawn_tube_sanctuary.Damageable = false //true? respawn_tube_sanctuary.DamageableByFriendlyFire = false respawn_tube_sanctuary.Repairable = true - respawn_tube_sanctuary.autoRepair = AutoRepairStats(1.6f, 10000, 2400, 1) + respawn_tube_sanctuary.autoRepair = AutoRepairStats(1.6f, 10000, 2400, 1) //TODO drain is default value? //TODO will need geometry when Damageable = true respawn_tube_tower.Name = "respawn_tube_tower" @@ -9541,7 +9540,7 @@ object GlobalDefinitions { respawn_tube_tower.Damageable = true respawn_tube_tower.DamageableByFriendlyFire = false respawn_tube_tower.Repairable = true - respawn_tube_tower.autoRepair = AutoRepairStats(1.6f, 10000, 2400, 1) + respawn_tube_tower.autoRepair = AutoRepairStats(1.6f, 10000, 2400, 1) //TODO drain is default value? respawn_tube_tower.RepairIfDestroyed = true respawn_tube_tower.Subtract.Damage1 = 8 respawn_tube_tower.Geometry = GeometryForm.representByCylinder(radius = 0.9336f, height = 2.84375f) @@ -9565,7 +9564,7 @@ object GlobalDefinitions { medical_terminal.MaxHealth = 500 medical_terminal.Damageable = true medical_terminal.Repairable = true - medical_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + medical_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) medical_terminal.RepairIfDestroyed = true medical_terminal.Geometry = GeometryForm.representByCylinder(radius = 0.711f, height = 1.75f) @@ -9578,7 +9577,7 @@ object GlobalDefinitions { adv_med_terminal.MaxHealth = 750 adv_med_terminal.Damageable = true adv_med_terminal.Repairable = true - adv_med_terminal.autoRepair = AutoRepairStats(1.57894f, 5000, 2400, 0.5f) + adv_med_terminal.autoRepair = AutoRepairStats(1.57894f, 5000, 2400, 0.05f) adv_med_terminal.RepairIfDestroyed = true adv_med_terminal.Geometry = GeometryForm.representByCylinder(radius = 0.8662125f, height = 3.47f) @@ -9607,7 +9606,7 @@ object GlobalDefinitions { portable_med_terminal.MaxHealth = 500 portable_med_terminal.Damageable = false //TODO actually true portable_med_terminal.Repairable = false - portable_med_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.5f) + portable_med_terminal.autoRepair = AutoRepairStats(2.24215f, 5000, 3500, 0.05f) pad_landing_frame.Name = "pad_landing_frame" pad_landing_frame.Interval = 1000 @@ -9830,7 +9829,7 @@ object GlobalDefinitions { manned_turret.Damageable = true manned_turret.DamageDisablesAt = 0 manned_turret.Repairable = true - manned_turret.autoRepair = AutoRepairStats(1.0909f, 10000, 1600, 0.5f) + manned_turret.autoRepair = AutoRepairStats(1.0909f, 10000, 1600, 0.05f) manned_turret.RepairIfDestroyed = true manned_turret.WeaponPaths += 1 -> new mutable.HashMap() manned_turret.WeaponPaths(1) += TurretUpgrade.None -> phalanx_sgl_hevgatcan @@ -9856,7 +9855,7 @@ object GlobalDefinitions { vanu_sentry_turret.Damageable = true vanu_sentry_turret.DamageDisablesAt = 0 vanu_sentry_turret.Repairable = true - vanu_sentry_turret.autoRepair = AutoRepairStats(3.27272f, 10000, 1000, 0.5f) + vanu_sentry_turret.autoRepair = AutoRepairStats(3.27272f, 10000, 1000, 0.05f) vanu_sentry_turret.RepairIfDestroyed = true vanu_sentry_turret.WeaponPaths += 1 -> new mutable.HashMap() vanu_sentry_turret.WeaponPaths(1) += TurretUpgrade.None -> vanu_sentry_turret_weapon @@ -9940,7 +9939,7 @@ object GlobalDefinitions { generator.Damageable = true generator.DamageableByFriendlyFire = false generator.Repairable = true - generator.autoRepair = AutoRepairStats(0.77775f, 5000, 875, 1) + generator.autoRepair = AutoRepairStats(0.77775f, 5000, 875, 1) //TODO drain is default value? generator.RepairDistance = 13.5f generator.RepairIfDestroyed = true generator.Subtract.Damage1 = 9 diff --git a/src/main/scala/net/psforever/objects/serverobject/repair/AmenityAutoRepair.scala b/src/main/scala/net/psforever/objects/serverobject/repair/AmenityAutoRepair.scala index 07025bd69..9be00f812 100644 --- a/src/main/scala/net/psforever/objects/serverobject/repair/AmenityAutoRepair.scala +++ b/src/main/scala/net/psforever/objects/serverobject/repair/AmenityAutoRepair.scala @@ -87,7 +87,7 @@ trait AmenityAutoRepair val wholeRepairAmount = modifiedRepairAmount.toInt val overflowRepairAmount = modifiedRepairAmount - wholeRepairAmount val finalRepairAmount = if (autoRepairOverflow + overflowRepairAmount < 1) { - autoRepairOverflow += overflowRepairAmount + autoRepairOverflow = autoRepairOverflow + overflowRepairAmount wholeRepairAmount } else { val totalOverflow = autoRepairOverflow + overflowRepairAmount @@ -266,7 +266,7 @@ trait AmenityAutoRepair import scala.concurrent.ExecutionContext.Implicits.global autoRepairTimer.cancel() autoRepairQueueTask = Some(System.currentTimeMillis() + delay) - val modifiedDrain = drain * 2 * Config.app.game.amenityAutorepairDrainRate //doubled intentionally + val modifiedDrain = drain * Config.app.game.amenityAutorepairDrainRate //doubled intentionally autoRepairTimer = if(AutoRepairObject.Owner == Building.NoBuilding) { //without an owner, auto-repair freely context.system.scheduler.scheduleOnce( diff --git a/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala b/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala index 5fc8041ae..96bca9257 100644 --- a/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala +++ b/src/main/scala/net/psforever/objects/serverobject/resourcesilo/ResourceSiloControl.scala @@ -17,9 +17,9 @@ import scala.concurrent.ExecutionContext.Implicits.global import scala.concurrent.duration._ /** - * An `Actor` that handles messages being dispatched to a specific `Resource Silo`. + * An `Actor` that handles messages being dispatched to a specific `ResourceSilo` entity. * - * @param resourceSilo the `Resource Silo` object being governed + * @param resourceSilo the `ResourceSilo` entity being governed */ class ResourceSiloControl(resourceSilo: ResourceSilo) extends Actor