mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-01-20 02:24:45 +00:00
Merge pull request #391 from Fate-JH/gen-msg-timing
The Facility's Generator Is Currently under Attack!
This commit is contained in:
commit
103c779d83
|
|
@ -15,6 +15,9 @@ import net.psforever.types.{PlanetSideGeneratorState, Vector3}
|
||||||
import services.Service
|
import services.Service
|
||||||
import services.avatar.{AvatarAction, AvatarServiceMessage}
|
import services.avatar.{AvatarAction, AvatarServiceMessage}
|
||||||
|
|
||||||
|
import scala.concurrent.duration._
|
||||||
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An `Actor` that handles messages being dispatched to a specific `Generator`.
|
* An `Actor` that handles messages being dispatched to a specific `Generator`.
|
||||||
* @param gen the `Generator` object being governed
|
* @param gen the `Generator` object being governed
|
||||||
|
|
@ -27,6 +30,7 @@ class GeneratorControl(gen : Generator) extends Actor
|
||||||
def DamageableObject = gen
|
def DamageableObject = gen
|
||||||
def RepairableObject = gen
|
def RepairableObject = gen
|
||||||
var imminentExplosion : Boolean = false
|
var imminentExplosion : Boolean = false
|
||||||
|
var alarmCooldownPeriod : Boolean = false
|
||||||
|
|
||||||
def receive : Receive = checkBehavior
|
def receive : Receive = checkBehavior
|
||||||
.orElse(takesDamage)
|
.orElse(takesDamage)
|
||||||
|
|
@ -58,6 +62,16 @@ class GeneratorControl(gen : Generator) extends Actor
|
||||||
}
|
}
|
||||||
gen.ClearHistory()
|
gen.ClearHistory()
|
||||||
|
|
||||||
|
case GeneratorControl.UnderThreatAlarm() =>
|
||||||
|
if(!alarmCooldownPeriod) {
|
||||||
|
alarmCooldownPeriod = true
|
||||||
|
GeneratorControl.BroadcastGeneratorEvent(gen, event = 15)
|
||||||
|
context.system.scheduler.scheduleOnce(delay = 5 seconds, self, GeneratorControl.AlarmReset())
|
||||||
|
}
|
||||||
|
|
||||||
|
case GeneratorControl.AlarmReset() =>
|
||||||
|
alarmCooldownPeriod = false
|
||||||
|
|
||||||
case _ => ;
|
case _ => ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -78,8 +92,6 @@ class GeneratorControl(gen : Generator) extends Actor
|
||||||
if(!target.Destroyed) {
|
if(!target.Destroyed) {
|
||||||
target.Health = 1 //temporary
|
target.Health = 1 //temporary
|
||||||
imminentExplosion = true
|
imminentExplosion = true
|
||||||
import scala.concurrent.duration._
|
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
|
||||||
context.system.scheduler.scheduleOnce(10 seconds, self, GeneratorControl.GeneratorExplodes())
|
context.system.scheduler.scheduleOnce(10 seconds, self, GeneratorControl.GeneratorExplodes())
|
||||||
GeneratorControl.BroadcastGeneratorEvent(gen, 16)
|
GeneratorControl.BroadcastGeneratorEvent(gen, 16)
|
||||||
}
|
}
|
||||||
|
|
@ -99,6 +111,15 @@ object GeneratorControl {
|
||||||
*/
|
*/
|
||||||
private case class GeneratorExplodes()
|
private case class GeneratorExplodes()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* na
|
||||||
|
*/
|
||||||
|
private case class UnderThreatAlarm()
|
||||||
|
/**
|
||||||
|
* na
|
||||||
|
*/
|
||||||
|
private case class AlarmReset()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* na
|
* na
|
||||||
* @param obj na
|
* @param obj na
|
||||||
|
|
@ -142,7 +163,7 @@ object GeneratorControl {
|
||||||
GeneratorControl.UpdateOwner(target)
|
GeneratorControl.UpdateOwner(target)
|
||||||
}
|
}
|
||||||
//the generator is under attack
|
//the generator is under attack
|
||||||
GeneratorControl.BroadcastGeneratorEvent(target, 15)
|
target.Actor ! UnderThreatAlarm()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue