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