Few more small vehicle related tweaks (#320)

* Revert back to using vehicle GUID for target gone check when jacking, as GUIDs are now retained when an object is removed from the world

* Don't allow dead vehicles to be repaired

* Don't show repair bar on dead vehicles

* Add IsDead flag to Vehicle
This commit is contained in:
Mazo 2020-01-17 18:20:33 +00:00 committed by Fate-JH
parent db82b9f01f
commit d0bd823e9e
3 changed files with 46 additions and 8 deletions

View file

@ -77,6 +77,7 @@ class Vehicle(private val vehicleDef : VehicleDefinition) extends AmenityOwner
private var faction : PlanetSideEmpire.Value = PlanetSideEmpire.TR
private var health : Int = 1
private var shields : Int = 0
private var isDead : Boolean = false
private var decal : Int = 0
private var trunkAccess : Option[PlanetSideGUID] = None
private var jammered : Boolean = false
@ -140,12 +141,23 @@ class Vehicle(private val vehicleDef : VehicleDefinition) extends AmenityOwner
MountedIn
}
def IsDead : Boolean = {
isDead
}
def Health : Int = {
health
}
def Health_=(assignHealth : Int) : Int = {
health = math.min(math.max(0, assignHealth), MaxHealth)
if(!isDead) {
health = math.min(math.max(0, assignHealth), MaxHealth)
}
if(health == 0) {
isDead = true
}
health
}

View file

@ -630,6 +630,34 @@ class VehicleControlMountingOwnedUnlockedDriverSeatTest extends ActorTest {
}
}
class VehicleControlRepairTest extends ActorTest {
val probe = new TestProbe(system)
val vehicle = Vehicle(GlobalDefinitions.fury)
vehicle.GUID = PlanetSideGUID(10)
vehicle.Health = 50
vehicle.Actor = system.actorOf(Props(classOf[VehicleControl], vehicle), "vehicle-test")
vehicle.Zone = new Zone("test", new ZoneMap("test"), 0) {
VehicleEvents = probe.ref
}
"Can repair alive vehicle" in {
assert(vehicle.Health == 50)
vehicle.Health += 10
assert(vehicle.Health == 60)
}
"Can't repair dead vehicle" in {
assert(vehicle.Health > 0)
vehicle.Health = 0
assert(vehicle.Health == 0)
vehicle.Health += 10
assert(vehicle.Health == 0)
}
}
class VehicleControlShieldsChargingTest extends ActorTest {
val probe = new TestProbe(system)
val vehicle = Vehicle(GlobalDefinitions.fury)