mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-12 15:04:39 +00:00
Send tactical squad chat only to squad members
This commit is contained in:
parent
22de086bb8
commit
765262f51a
2 changed files with 57 additions and 41 deletions
|
|
@ -371,18 +371,23 @@ class ChatActor(
|
||||||
customNtuValue match {
|
customNtuValue match {
|
||||||
// x = n0% of maximum capacitance
|
// x = n0% of maximum capacitance
|
||||||
case Some(value) if value > -1 && value < 11 =>
|
case Some(value) if value > -1 && value < 11 =>
|
||||||
silos.collect { case silo: ResourceSilo =>
|
silos.collect {
|
||||||
silo.Actor ! ResourceSilo.UpdateChargeLevel(value * silo.MaxNtuCapacitor * 0.1f - silo.NtuCapacitor)
|
case silo: ResourceSilo =>
|
||||||
|
silo.Actor ! ResourceSilo.UpdateChargeLevel(
|
||||||
|
value * silo.MaxNtuCapacitor * 0.1f - silo.NtuCapacitor
|
||||||
|
)
|
||||||
}
|
}
|
||||||
// capacitance set to x (where x > 10) exactly, within limits
|
// capacitance set to x (where x > 10) exactly, within limits
|
||||||
case Some(value) =>
|
case Some(value) =>
|
||||||
silos.collect { case silo: ResourceSilo =>
|
silos.collect {
|
||||||
|
case silo: ResourceSilo =>
|
||||||
silo.Actor ! ResourceSilo.UpdateChargeLevel(value - silo.NtuCapacitor)
|
silo.Actor ! ResourceSilo.UpdateChargeLevel(value - silo.NtuCapacitor)
|
||||||
}
|
}
|
||||||
case None =>
|
case None =>
|
||||||
// x >= n0% of maximum capacitance and x <= maximum capacitance
|
// x >= n0% of maximum capacitance and x <= maximum capacitance
|
||||||
val rand = new scala.util.Random
|
val rand = new scala.util.Random
|
||||||
silos.collect { case silo: ResourceSilo =>
|
silos.collect {
|
||||||
|
case silo: ResourceSilo =>
|
||||||
val a = 7
|
val a = 7
|
||||||
val b = 10 - a
|
val b = 10 - a
|
||||||
val tenth = silo.MaxNtuCapacitor * 0.1f
|
val tenth = silo.MaxNtuCapacitor * 0.1f
|
||||||
|
|
@ -475,14 +480,11 @@ class ChatActor(
|
||||||
// [all [<empire>|none]]
|
// [all [<empire>|none]]
|
||||||
(Some(1) | None, Some(0), None, Some(_), None) =>
|
(Some(1) | None, Some(0), None, Some(_), None) =>
|
||||||
val buildings: Seq[Building] = buildingsOption.getOrElse(
|
val buildings: Seq[Building] = buildingsOption.getOrElse(
|
||||||
session.zone.Buildings
|
session.zone.Buildings.values.filter { building =>
|
||||||
.values
|
|
||||||
.filter { building =>
|
|
||||||
building.PlayersInSOI.exists { soiPlayer =>
|
building.PlayersInSOI.exists { soiPlayer =>
|
||||||
session.player.CharId == soiPlayer.CharId
|
session.player.CharId == soiPlayer.CharId
|
||||||
}
|
}
|
||||||
}
|
}.toSeq
|
||||||
.toSeq
|
|
||||||
)
|
)
|
||||||
buildings foreach { building =>
|
buildings foreach { building =>
|
||||||
// TODO implement timer
|
// TODO implement timer
|
||||||
|
|
@ -563,12 +565,21 @@ class ChatActor(
|
||||||
ChatChannel.Default()
|
ChatChannel.Default()
|
||||||
)
|
)
|
||||||
|
|
||||||
case (CMT_VOICE, _, _) =>
|
case (CMT_VOICE, _, contents) =>
|
||||||
|
// SH prefix are tactical voice macros only sent to squad
|
||||||
|
if (contents.startsWith("SH")) {
|
||||||
|
channels.foreach {
|
||||||
|
case channel: ChatChannel.Squad =>
|
||||||
|
chatService ! ChatService.Message(session, message.copy(recipient = session.player.Name), channel)
|
||||||
|
case _ =>
|
||||||
|
}
|
||||||
|
} else {
|
||||||
chatService ! ChatService.Message(
|
chatService ! ChatService.Message(
|
||||||
session,
|
session,
|
||||||
message.copy(recipient = session.player.Name),
|
message.copy(recipient = session.player.Name),
|
||||||
ChatChannel.Default()
|
ChatChannel.Default()
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
case (CMT_TELL, _, _) if !session.player.silenced =>
|
case (CMT_TELL, _, _) if !session.player.silenced =>
|
||||||
chatService ! ChatService.Message(
|
chatService ! ChatService.Message(
|
||||||
|
|
@ -690,7 +701,10 @@ class ChatActor(
|
||||||
case (None, Some(waypoint)) if waypoint == "-list" =>
|
case (None, Some(waypoint)) if waypoint == "-list" =>
|
||||||
val zone = PointOfInterest.get(session.player.Zone.id)
|
val zone = PointOfInterest.get(session.player.Zone.id)
|
||||||
zone match {
|
zone match {
|
||||||
case Some(zone: PointOfInterest) => sessionActor ! SessionActor.SendResponse(ChatMsg(UNK_229, true, "", PointOfInterest.listAll(zone), None))
|
case Some(zone: PointOfInterest) =>
|
||||||
|
sessionActor ! SessionActor.SendResponse(
|
||||||
|
ChatMsg(UNK_229, true, "", PointOfInterest.listAll(zone), None)
|
||||||
|
)
|
||||||
case _ => ChatMsg(UNK_229, true, "", s"unknown player zone '${session.player.Zone.id}'", None)
|
case _ => ChatMsg(UNK_229, true, "", s"unknown player zone '${session.player.Zone.id}'", None)
|
||||||
}
|
}
|
||||||
case (None, Some(waypoint)) if waypoint != "-help" =>
|
case (None, Some(waypoint)) if waypoint != "-help" =>
|
||||||
|
|
@ -939,7 +953,8 @@ class ChatActor(
|
||||||
case CMT_VOICE =>
|
case CMT_VOICE =>
|
||||||
if (
|
if (
|
||||||
session.zone == fromSession.zone &&
|
session.zone == fromSession.zone &&
|
||||||
Vector3.Distance(session.player.Position, fromSession.player.Position) < 25
|
Vector3.Distance(session.player.Position, fromSession.player.Position) < 25 ||
|
||||||
|
message.contents.startsWith("SH") // tactical squad voice macro
|
||||||
) {
|
) {
|
||||||
sessionActor ! SessionActor.SendResponse(message)
|
sessionActor ! SessionActor.SendResponse(message)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,8 +63,9 @@ class ChatService(context: ActorContext[ChatService.Command]) extends AbstractBe
|
||||||
|
|
||||||
case Message(session, message, channel) =>
|
case Message(session, message, channel) =>
|
||||||
(channel, message.messageType) match {
|
(channel, message.messageType) match {
|
||||||
case (ChatChannel.Squad(_), CMT_SQUAD) => ;
|
case (ChatChannel.Squad(_), CMT_SQUAD) => ()
|
||||||
case (ChatChannel.Default(), messageType) if messageType != CMT_SQUAD => ;
|
case (ChatChannel.Squad(_), CMT_VOICE) if message.contents.startsWith("SH") => ()
|
||||||
|
case (ChatChannel.Default(), messageType) if messageType != CMT_SQUAD => ()
|
||||||
case _ =>
|
case _ =>
|
||||||
log.error(s"invalid chat channel $channel for messageType ${message.messageType}")
|
log.error(s"invalid chat channel $channel for messageType ${message.messageType}")
|
||||||
return this
|
return this
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue