From 26824da624361cebaad2435128d5f19e78fce59d Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Mon, 30 Oct 2023 20:28:35 -0400 Subject: [PATCH 1/2] Lodestar repairs vehicles now and damage interrupts repairing --- .../scala/net/psforever/objects/GlobalDefinitions.scala | 4 ++-- .../net/psforever/objects/equipment/EffectTarget.scala | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala index 2db48a94..f770830d 100644 --- a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala +++ b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala @@ -9937,8 +9937,8 @@ object GlobalDefinitions { lodestar_repair_terminal.Name = "lodestar_repair_terminal" lodestar_repair_terminal.Interval = 1000 lodestar_repair_terminal.HealAmount = 60 - lodestar_repair_terminal.UseRadius = 20 - lodestar_repair_terminal.TargetValidation += EffectTarget.Category.Vehicle -> EffectTarget.Validation.RepairSilo + lodestar_repair_terminal.UseRadius = 40 + lodestar_repair_terminal.TargetValidation += EffectTarget.Category.Vehicle -> EffectTarget.Validation.LodestarRepair lodestar_repair_terminal.Damageable = false lodestar_repair_terminal.Repairable = false diff --git a/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala b/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala index 788f2446..2f5e404d 100644 --- a/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala +++ b/src/main/scala/net/psforever/objects/equipment/EffectTarget.scala @@ -53,6 +53,12 @@ object EffectTarget { case _ => false } + def LodestarRepair(target: PlanetSideGameObject): Boolean = + target match { + case v: Vehicle => RepairSilo(v) || PadLanding(v) + case _ => false + } + /** * To repair at this silo, the vehicle: * can not be a flight vehicle, @@ -79,7 +85,7 @@ object EffectTarget { private def CommonRepairConditions(v: Vehicle): Boolean = { v.Health > 0 && v.Health < v.MaxHealth && - (v.History.findLast { entry => entry.isInstanceOf[DamagingActivity] } match { + (v.History.find { entry => entry.isInstanceOf[DamagingActivity] } match { case Some(entry) if System.currentTimeMillis() - entry.time < 5000L => false case _ => true }) From fdccba40b58d0069fa86274d9c367c2802d2d664 Mon Sep 17 00:00:00 2001 From: ScrawnyRonnie Date: Wed, 1 Nov 2023 13:21:14 -0400 Subject: [PATCH 2/2] Energy crystals weren't working. Seemed to be caused by GUIDs. --- .../net/psforever/objects/GlobalDefinitions.scala | 10 +++++----- src/main/scala/net/psforever/zones/Zones.scala | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala index f770830d..06d1a89c 100644 --- a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala +++ b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala @@ -9713,16 +9713,16 @@ object GlobalDefinitions { crystals_repair_b.Repairable = false crystals_vehicle_a.Name = "crystals_vehicle_a" - crystals_vehicle_a.Interval = 1350 - crystals_vehicle_a.HealAmount = 40 + crystals_vehicle_a.Interval = 1000 + crystals_vehicle_a.HealAmount = 60 crystals_vehicle_a.UseRadius = 15 crystals_vehicle_a.TargetValidation += EffectTarget.Category.Vehicle -> EffectTarget.Validation.VehicleCrystal crystals_vehicle_a.Damageable = false crystals_vehicle_a.Repairable = false crystals_vehicle_b.Name = "crystals_vehicle_b" - crystals_vehicle_b.Interval = 1350 - crystals_vehicle_b.HealAmount = 40 + crystals_vehicle_b.Interval = 1000 + crystals_vehicle_b.HealAmount = 60 crystals_vehicle_b.UseRadius = 15 crystals_vehicle_b.TargetValidation += EffectTarget.Category.Vehicle -> EffectTarget.Validation.VehicleCrystal crystals_vehicle_b.Damageable = false @@ -9743,7 +9743,7 @@ object GlobalDefinitions { crystals_energy_b.Repairable = false crystals_energy.Name = "crystals_energy" - crystals_energy.Interval = 500 + crystals_energy.Interval = 1000 crystals_energy.UseRadius = 5 crystals_energy.TargetValidation += EffectTarget.Category.Player -> EffectTarget.Validation.AncientWeaponRecharge crystals_energy.Damageable = false diff --git a/src/main/scala/net/psforever/zones/Zones.scala b/src/main/scala/net/psforever/zones/Zones.scala index b06eaecf..a0a15f8d 100644 --- a/src/main/scala/net/psforever/zones/Zones.scala +++ b/src/main/scala/net/psforever/zones/Zones.scala @@ -578,7 +578,7 @@ object Zones { ) case "crystals_energy_a" | "crystals_energy_b" => zoneMap.addLocalObject( - obj.guid + 1, + obj.guid + 2000, ProximityTerminal.Constructor(obj.position, GlobalDefinitions.crystals_energy), owningBuildingGuid = ownerGuid )