mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-03-24 22:39:07 +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))
|
||||
// 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(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue