mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-01-20 02:24:45 +00:00
promoted generator destruction to flag when to power down facility
This commit is contained in:
parent
54f6588439
commit
924c78ea0b
|
|
@ -6558,9 +6558,9 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
|
|||
sendResponse(SetEmpireMessage(guid, building.Faction))
|
||||
// power
|
||||
building.Generator match {
|
||||
case Some(obj) if obj.Condition != PlanetSideGeneratorState.Normal =>
|
||||
sendResponse(PlanetsideAttributeMessage(guid, 48, 1))
|
||||
sendResponse(PlanetsideAttributeMessage(guid, 38, 0))
|
||||
case Some(obj) if obj.Condition == PlanetSideGeneratorState.Destroyed || building.NtuLevel == 0 =>
|
||||
sendResponse(PlanetsideAttributeMessage(guid, 48, 1)) //amenities disabled; red warning lights
|
||||
sendResponse(PlanetsideAttributeMessage(guid, 38, 0)) //disable spawn target on deployment map
|
||||
case _ => ;
|
||||
}
|
||||
// capitol force dome state
|
||||
|
|
|
|||
|
|
@ -24,6 +24,16 @@ class Generator(private val gdef: GeneratorDefinition) extends Amenity {
|
|||
Condition
|
||||
}
|
||||
|
||||
override def Destroyed_=(state : Boolean) : Boolean = {
|
||||
val isDestroyed = super.Destroyed_=(state)
|
||||
condition = if (isDestroyed) {
|
||||
PlanetSideGeneratorState.Destroyed
|
||||
} else {
|
||||
PlanetSideGeneratorState.Normal
|
||||
}
|
||||
isDestroyed
|
||||
}
|
||||
|
||||
def Definition: GeneratorDefinition = gdef
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,6 +80,8 @@ class GeneratorControl(gen: Generator)
|
|||
.orElse {
|
||||
case GeneratorControl.Destabilized() =>
|
||||
imminentExplosion = true
|
||||
//the generator's condition is technically destroyed, but avoid official reporting until the explosion
|
||||
gen.Condition = PlanetSideGeneratorState.Destroyed
|
||||
GeneratorControl.UpdateOwner(gen, Some(GeneratorControl.Event.Destabilized))
|
||||
queuedExplosion.cancel()
|
||||
queuedExplosion = context.system.scheduler.scheduleOnce(10 seconds, self, GeneratorControl.GeneratorExplodes())
|
||||
|
|
@ -89,7 +91,6 @@ class GeneratorControl(gen: Generator)
|
|||
val zone = gen.Zone
|
||||
gen.Health = 0
|
||||
super.DestructionAwareness(gen, gen.LastShot.get)
|
||||
gen.Condition = PlanetSideGeneratorState.Destroyed
|
||||
GeneratorControl.UpdateOwner(gen, Some(GeneratorControl.Event.Destroyed))
|
||||
//kaboom
|
||||
zone.AvatarEvents ! AvatarServiceMessage(
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ object AutoRepairIntegrationTest {
|
|||
MaxHealth = 500
|
||||
Damageable = true
|
||||
Repairable = true
|
||||
autoRepair = AutoRepairStats(1, 500, 500, 1)
|
||||
autoRepair = AutoRepairStats(200, 500, 500, 1)
|
||||
RepairIfDestroyed = true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@ class GeneratorControlDestroyedTest extends ActorTest {
|
|||
)
|
||||
assert(gen.Health == 1)
|
||||
assert(!gen.Destroyed)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Normal)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Destroyed)
|
||||
|
||||
avatarProbe.expectNoMessage(9500 milliseconds)
|
||||
val msg_avatar2 = avatarProbe.receiveN(3, 1000 milliseconds) //see DamageableEntity test file
|
||||
|
|
@ -421,7 +421,7 @@ class GeneratorControlKillsTest extends ActorTest {
|
|||
)
|
||||
assert(gen.Health == 1)
|
||||
assert(!gen.Destroyed)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Normal)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Destroyed)
|
||||
|
||||
avatarProbe.expectNoMessage(9500 milliseconds)
|
||||
val msg_avatar2 = avatarProbe.receiveN(3, 1000 milliseconds) //see DamageableEntity test file
|
||||
|
|
@ -631,7 +631,7 @@ class GeneratorControlNotDamageIfExplodingTest extends ActorTest {
|
|||
)
|
||||
assert(gen.Health == 1)
|
||||
assert(!gen.Destroyed)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Normal)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Destroyed)
|
||||
//going to explode state
|
||||
|
||||
//once
|
||||
|
|
@ -732,7 +732,7 @@ class GeneratorControlNotRepairIfExplodingTest extends ActorTest {
|
|||
)
|
||||
assert(gen.Health == 1)
|
||||
assert(!gen.Destroyed)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Normal)
|
||||
assert(gen.Condition == PlanetSideGeneratorState.Destroyed)
|
||||
//going to explode state
|
||||
|
||||
//once
|
||||
|
|
|
|||
Loading…
Reference in a new issue